Commit Graph

366 Commits

Author SHA1 Message Date
Skye Deving
4f2ac31456 Add arup_clear() and clear arup when fetching new areas
Theoretically fixes #313

The "FA" packet from the server invalidates the client's previous area
list so it makes sense for the arup information tied to that list to
be invalidated as well (especially seeing that the area and arup share
the same index).  As we repopulate the client's area list, we do the
same for the arup list.
2021-01-10 06:38:26 -06:00
Crystalwarrior
1ad8f3bf24 Merge branch 'master' into feature/timerclock
# Conflicts:
#	include/courtroom.h
#	src/courtroom.cpp
2021-01-10 14:27:27 +03:00
in1tiate
3a207dccf0 i barely had to modify this 2021-01-09 15:13:19 -06:00
oldmud0
41c134b1be
Merge pull request #387 from AttorneyOnline/feature/immediate
Rename noninterrupting bonanza to consistent and short "immediate" instead
2021-01-09 12:35:09 -06:00
in1tiate
3993ba47e5
Add desk_mods 2 -5 for more flexibility in emotes (#353) 2021-01-09 12:32:24 -06:00
Crystalwarrior
5b34df1c5a Rename noninterrupting_preanim and all its associated bullshit with more cooler and nicer bro immediate
In themes, pre_no_interrupt old-style name is still supported if we cannot find "immediate"
Resolves https://github.com/AttorneyOnline/AO2-Client/issues/64
2021-01-09 18:43:24 +03:00
in1tiate
883fa8547d
replace "gender" with "blips" (#386)
Co-authored-by: Crystalwarrior <Varsash@Gmail.com>
2021-01-09 18:24:06 +03:00
in1tiate
15c3d607c6
Log objections IC, overhaul custom objections context menu, add more configuration options per-character (#356)
* initial commit

* The Quick-Fix is a secondary weapon for the Medic. It is a prototype Medi Gun with a group of three gauges on one side, a (cosmetic) ÜberCharge gauge on the other side, and what appears to be a blender for a body. The main gun is coupled with a medicinal reactor backpack with glowing portions that replaces Medic's default backpack.

* fixed settings dialog

* slightly less stupid custom objection default

Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>

Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-01-09 18:17:12 +03:00
in1tiate
079c45e298
Define IC Log colors independent of character, define message colors according to character (#323)
* IC Log colors now defined independent of character

* Fix regression causing incorrect colors in the viewport

* fix goof that broke chat scrolling

* Only regenerate color vector when it's needed
2021-01-09 18:09:18 +03:00
oldmud0
de3533fbf2 Rework timer and ping logic
The timer's time as received by the server is clarified to be the actual
numerical time, in milliseconds, to be shown on the clock.
2021-01-09 01:18:19 -06:00
oldmud0
9486f44770
Merge pull request #369 from skyedeving/fix-showname-toggle
Fix timestamps when toggling showname
2021-01-05 21:07:48 -06:00
Skye Deving
5abc685b47 Sort case evidence numerically before adding in
inventories get displayed lexigraphically too but it is assumed to not
matter
2021-01-04 19:58:30 -06:00
Skye Deving
8aaba6633e Change default parameter to be QDateTime::currentDateTime()
Print debug message if provided timestamp is invalid
2021-01-04 19:21:11 -06:00
Skye Deving
6570bcf066 Fix timestamps when toggling showname
On toggling shownames, regenerate_ic_chatlog() gets called to reprint
the entire chatlog with append_ic_text().  The issue is that
append_ic_text() uses QDateTime::currentDateTime() for the timestamp
when it's called.  Therefore the fix is adding a new timestamp
parameter to the append_ic_text() which we supply from the datetime
provided by each chatlogpiece
2021-01-04 13:45:18 -06:00
Skye Deving
aabb256207 Refactor AOPacket 2021-01-04 06:38:31 -06:00
scatterflower
29f8733dba
FL toggle for Y offset (#360)
Use "y_offset" to enable the Y offset protocol extension.
2021-01-03 19:23:01 -06:00
in1tiate
39a8ab8ab2
Enable support for up to 6 SFX channels (#355)
I'm somewhat confused as to why this wasn't enabled to begin with, since all the necessary code is here.

Closes #306, and fixes the issue with realizations being cut off by other sounds.

Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2020-12-28 00:54:08 -06:00
oldmud0
4eb45ef2b0
Merge pull request #305 from Crystalwarrior/bugfix/blip-accuracy
More accurate/consistent blip rate functionality + punctuation slowdown fixes
2020-11-10 14:07:45 -06:00
in1tiate
fe3224d7e8
Add vertical offset feature (#333) 2020-11-10 08:43:18 -06:00
in1tiate
5aee23d56b
Add context menu entry to stop music (#301)
Also included in this commit are changes to the music packet handler that change the text from "has played a song" to "has stopped the music" in the case that the special "stop song" track is played, as well as a condition stopping music categories from triggering a music packet when double-clicked.

Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2020-11-09 14:47:51 -06:00
oldmud0
2d398c3237
Merge pull request #312 from AttorneyOnline/fix-doubleclick
fix doubleclick server being buggy
2020-11-07 19:11:43 -06:00
oldmud0
dd085c8958
Merge pull request #331 from AttorneyOnline/no-fantacrypt
Drop AO1 compatibility
2020-11-01 12:32:48 -06:00
scatterflower
f91fc5739c fix doubleclick server being buggy 2020-10-04 01:41:23 -05:00
in1tiate
48f8d8aa27 add variable check for evidence presenting 2020-09-19 04:12:40 -05:00
Crystalwarrior
c392bb3415 Revert the meme of instant text.
Instant text using }}} is not only meme-worthy in how limited it is in practice, it also makes the blip ticker completely confused how and when to play the blips (to make instant text possible, the entire system needs rewriting (again)
2020-09-11 23:39:32 +03:00
Crystalwarrior
d00d0769a9 Lots of blip rate fixes:
Remove qElapsedTimer method of blip earrape protection due to major inconsistency issues with this method (the same message would produce wildly different blip sounds - consistency is preferred)
More sophisticated blip earrape prevention is calculated in the chat ticker function itself, it also properly adjusts itself depending on the blip_rate used.
2020-09-11 23:38:36 +03:00
Crystalwarrior
8cc067dee4 More accurate/consistent blip rate functionality inspired by https://youtu.be/Min0hkwO43g 2020-09-11 22:17:13 +03:00
Crystalwarrior
6c62980ffc forgot to ctrl+s header definitions fuck 2020-08-25 12:58:48 +03:00
Crystalwarrior
ee3bad44c7 Implement clock pausing
Implement clock setting w/o starting or stopping
Both of these should make it possible for the server to start/stop/pause/resume the clock with perfect synchronization to the true time.
2020-08-25 12:48:09 +03:00
Crystalwarrior
7e9c5726e0 Introduce the timer packet - "TI".
This timer will start the clock accounting for latency! Cool, right?
Remove useless qDebug() for music looping
2020-08-25 12:21:10 +03:00
Crystalwarrior
febfbeafc1 Actually make use of the completely useless CHECK and CH keepalive timer and use them to determine the client's ping.
Display ping in the application window title.
keepalive timer now fires every second instead of every minute
Remove meme clock starting on set_widgets()
implement get_ping() on w_courtroom
2020-08-25 12:18:49 +03:00
scatterflower
565a3cce89 remove slow loading 2020-08-21 15:52:07 -05:00
scatterflower
3f999455a9 remove remaining traces of fantacrypt 2020-08-21 15:36:31 -05:00
scatterflower
c0316ded85 remove fantacrypt 2020-08-21 15:30:54 -05:00
Crystalwarrior
f27f210efe Proof of concept complete. The timer will now take int msecs to start, and will properly display the time remaining until target time in hh:mm:ss.zzz
Clock can be defined in courtroom_config.ini and its font set in courtroom_fonts.ini
Pause and resume functions will not work as expected atm.
2020-08-21 18:01:24 +03:00
Crystalwarrior
edf3d463e9 add a new aoclocklabel class that is a QLabel with fancy DR-Style timing features
WIP
2020-08-21 17:17:49 +03:00
scatterflower
7cd0fa0c6e version bump to 2.8.5 2020-08-19 22:56:36 -05:00
scatterflower
9eb0f53db1
Reset BASS when switching devices; drop Qt Multimedia support (#262)
* Allow changing audio device on the fly while in a server
* Use default audio device if device in config doesn't exist
* Automatically change audio device to default when current one is invalid
* Destroy Qt Multimedia support

It was decided that there was not enough attention being given to Qt
Multimedia support to justify its continued maintenance simply as a
libre alternative to BASS. While substantial changes to audio were being
made in 2.8, the Qt Multimedia support code fell behind in disrepair.
It's clear that there is no vested interest in implementing audio
features twice for the sake of licensing.

When it's time to switch to another audio library, it will be done
unilaterally.

* CI: Use BASS for Linux build

Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2020-08-19 16:40:37 -05:00
Crystalwarrior
cef0ebc6eb
IC log rewrite (#259)
* Rewrite the IC Log code to drastically reduce code duplication and have both downward and upward mode in the same function
Regenerate the IC Log in set_widgets() function, making sure the maximum_blocks is accounted for and clearing the log to prepare for different log mode (upwards/downwards) if it's different from previous
Add placeholder text telling the user the direction in which the log will go
Remove useless first_message_sent global boolean, a remnant from a   w e a k e r   c o d e r m a n

* Add log_colors boolean to reduce color I/O happening in append_ic_text (optimization meme)
Clear the IC log when log_colors setting changes and reload theme is pressed
Fix https://github.com/AttorneyOnline/AO2-Client/issues/221

* Add configurable margin between IC log entries
Add configurable newline/singleline log mode
Options in settings for these

* Add optional timestamps

* Un-hardcode "played music" from the chatlogpiece and introduce the "action" argument so that "presented evidence" is fully supported now
Translate "has presented evidence"
Regenerate IC chatlog instead of clearing it, properly updating every element with the new configurations

* Go away *temp, code duplication making me shid and cry rn
Why is this not done in append_ic_text, or why isn't there a dedicated ic logging func aAAAaaaaAAAaa
Fix presenting evidence not being properly logged
Fix timestamp being UTC instead of local time (local time will not be as confusing)

* okok it was a joke a big ol bamboozle you got gnomed haha rick rolled beaned stickbugged
I did NOT copy paste code, no, I actually intended to fix copy pasted code all along. log_ic_text was always planned.

(Fix copypasted code for ic_chatlog_history and consolidate it into a single log_ic_text func)
2020-08-19 11:16:41 -05:00
Crystalwarrior
475a572c3b
Improved blankposting (#256)
* Consolidate blankposting into singular log entries of "no message" instead of spamming the logs repeatedly when someone decides to keep switching emotes
Return proper blankpost checking to 2.8.5 (chatmessage_is_empty bool makes sure the chatbox doesn't appear - branch broke that behavior by never setting it)
More robust blankpost checking, meaning that passing a competely empty "" string will also count as a blankpost
Fix screenshake not working with blankposting by moving it before the chatmessage_is_empty check in start_chack_ticking() stage of the message parsing

* Allow user to send blankposts without even having to input a single spacebar, but only if last m_chatmessage CID matches ours.

* Reviews are cool and good👌
allow sending no-text chat message to server without weird cid checks (let the server validate if they want to do STR_OR_EMPTY or just STR) - doesn't break existing behavior and lets servers introduce the new one if they want to
Treat all blank/whitespace messages as blankposting and not just single-whitespace.
Remove chatmessage_is_empty bool because why the fuck would you even need it if you have m_chatmessage[MESSAGE] already
Simplify chatlogpiece log entry to not be a *temp pointer by suggestion

* another useless bool destroyed
Make "additive" have a very awesome emergent behavior with blankposting - keep showing the chatbox+message while only changing the emotes. Works with preanims too!
2020-08-18 10:02:53 -05:00
scatterflower
ecb0ee42a3 clang format 2020-08-16 21:59:44 -05:00
scatterflower
1c5b097f65 further cleanup of chat handler 2020-08-16 12:43:26 -05:00
scatterflower
5c6dad88ce
Merge branch '2.8' into ic_fixes 2020-08-16 12:35:41 -05:00
scatterflower
11250e1386 Ensure consistent behavior in IC log, clarify showname logic, and define constants for minimum and maximum packet sizes 2020-08-16 06:50:19 -05:00
scatterflower
102ca4d641 Create brushes for area list once 2020-08-15 19:47:24 -05:00
scatterflower
8b44d4ae95 Only regenerate the area list once per ARUP packet 2020-08-15 19:40:52 -05:00
windrammer
36b5af3cb9
Add option for automatic logging (#203)
Just so we're on the same page, this is enabled by default.

Co-authored-by: Cents02 <Cents02@Cents0.me>
2020-07-31 15:14:39 -05:00
Crystalwarrior
bab10ea14d
Add "Play Random Song" option (#200)
It also respects the search string, so only visible tracks are chosen from the pool. Categories (i.e. entries with children) are also ignored.
2020-07-31 15:11:38 -05:00
Crystalwarrior
740d825fd2
Add a p_char optional argument to set_fonts() (#209)
Add overrides to set_font for font name and size (this is to preserve the chat_size and chat_font char.ini arguments that were implemented way earlier)
Cease the baddening with set_font that was there before and condense it into a proper set_font function call
Implement set_font for custom showname shenanigans from the misc folder
2020-07-31 15:06:55 -05:00
windrammer
55fa6d7da0
Add darker button generator (#201)
When an `_off` emote button exists without an `_on` counterpart, the client will automatically generate the `_on` button and save it to disk.

Co-authored-by: Cents02 <Cents02@Cents0.me>
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2020-07-30 12:10:58 -05:00
in1tiate
3afdad90c8
Add support for multiple custom interjections via context menu (#162)
* YOU DO NOT BELONG IN THIS PR
GET OUT

Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
Co-authored-by: likeawindrammer <31085911+likeawindrammer@users.noreply.github.com>
Co-authored-by: Crystalwarrior <Varsash@Gmail.com>
2020-07-29 17:45:46 -05:00
windrammer
fc9fe6b34b
Fix colors not persisting when refreshing IC log (#204)
Co-authored-by: Cents02 <Cents02@Cents0.me>
2020-07-29 17:08:39 -05:00
windrammer
58180371ef
Hitting return on blank search box should collapse music list (#205)
* If enter is hit with no query it collapses the music list

Co-authored-by: Cents02 <Cents02@Cents0.me>
2020-07-29 17:07:55 -05:00
Crystalwarrior
c423a5ee56
Make music 'fade out previous' an effect enabled by default (#196)
Simply make the "FADE_OUT" music effect flag by default so more users experience the SMOOTH FADE OUT magic by accident and praise the based client.
2020-07-26 11:21:58 -05:00
Crystalwarrior
44a4a2d23e
Fix an issue where the Ambience layer would break looping points for all other channels due to loop_start and loop_end only being a single variable. (#164)
This occurs due to BASS not having any private variables of its own, so it was simply using the public variables loop_start and loop_end as reference - since those changed for any new song playing on another channel, the old looping points got replaced, and the seamless looping stops working.
The solution was easy - just make a  loop_start/loop_end variable for every supported channel - so 4 variables in our case.
2020-07-04 12:15:52 -05:00
Crystalwarrior
0a31a20266
Add a setting to turn on/off custom character-defined chatboxes (#166)
* Add a new "Custom Chatboxes" settings option to enable/disable char.ini setting custom chat box designs per-character

* Fix chat_arrow being incorrectly updated between character messages if the custom chatbox modified the chat arrow positioning/size in any way

* brackets matter
2020-07-03 16:34:09 -05:00
sD
e81fac7e07 fix qt sfx player 2020-05-23 19:28:34 +02:00
sD
8a4fc4516c fix qt music player 2020-05-23 19:18:35 +02:00
sD
ba9aebec57 translate stuff that got run over 2020-05-23 18:32:05 +02:00
sD
52736498b1 fix up nomusic 2020-05-23 17:21:22 +02:00
oldmud0
75453510e0 Fix compile errors from merge 2020-05-22 21:14:37 -05:00
oldmud0
fd1855b8d0 Merge KFO source unconditionally into AO2 2020-05-22 19:17:55 -05:00
oldmud0
8928aa2718 Perform clang-format
If you don't want to see this commit on blames, use the hidden
whitespace option on GitHub, or use `-w` in git-blame.
2020-05-22 17:13:37 -05:00
oldmud0
156a760eba Full revert to tag 2.6.2
Due to a countless number of changes made to the core that were not
fully understood, tested, or documented, it was decided to roll
everything back to the last known stable version (2.6.2).

Changes dropped include:
 - Witness needed
 - Shake
 - Frame SFX
 - Multiple custom objections
 - Multithreaded thumbnail generation
 - Looping
 - Various translation additions
 - "Mirror IC"
 - Color in IC log
 - An invocation of clang-format

Next time, work together and split your big fork into independently
testable feature branches.
2020-05-22 17:02:32 -05:00
Crystalwarrior
4617e3135e Change version number to 2.8.4 2020-05-22 15:28:33 +03:00
Crystalwarrior
a5868aa380 Fix looping frame SFX not working w/ AOV's definitions 2020-05-22 04:53:19 +03:00
Crystalwarrior
88de4cde04 clang 2 electric boogaloo
{ BasedOnStyle: LLVM, BreakBeforeBraces: Stroustrup}
2020-05-22 02:14:54 +03:00
Crystalwarrior
c8e12558cd Clang-ify the code with this styling using Visual Studio Code:
{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Stroustrup, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All }
(this is the Visual Studio preset with only "BreakBeforeBraces" changed from Allman to Stroustrup)
2020-05-22 01:18:24 +03:00
oldmud0
4af7bc5fff
Fix broken APNG (#153)
* Remove explicit APNG check

* Update aocharmovie.h
2020-05-19 18:49:29 -05:00
cents
5b6d58bd02 Added additional customization options.
I didn't format anything tho that is at the end
2020-04-20 07:51:42 -07:00
likeawindrammer
7a3ebc8362 Revert faster blip speed
Without an option to change it users will complain
Thanks Initiate for telling me how to change this
2020-04-19 17:04:19 -06:00
oldmud0
13942345c6 Run clang-format on entire project
Indentation fixed to 2 spaces per tab. Braces set to Stroustrup style.
Lines reflow at 80 characters. One-line method bodies are on the same
line as the signature. Space always after `//`. No indentation
on preprocessor macros. Includes are sorted lexicographically.

If you don't want to see this commit on blames, use the hidden
whitespace option on GitHub, or use `-w` in git-blame.
2020-04-17 21:57:16 -05:00
oldmud0
faac191f0b Mega-merge of CR fork
CR likely stands for "CentsRaidensnake." Like the Case Cafe mega-merge
before it, this was not a clean merge, and it had to be split up into
two parts: the actual changes, and the attempt it made to reformat the
entire code via clang-format.

This branch had a complicated set of changes that would be difficult to
describe in this commit message. It would be better described in a
proper changelog.
2020-04-17 21:48:34 -05:00
Crystalwarrior
dfac0652c8 Add possibility for custom use text besides just "played music"
Implemented "presented evidence" message
2020-04-13 17:16:26 +03:00
Crystalwarrior
8007b1d1b9 Add courtroom_design.ini partial parsing for misc/ folder (only chat_arrow and showname atm)
Initialize chat arrow n stuff
this is still pretty gay because you can't ignore size and set pos or something like that
2020-03-31 18:12:15 +03:00
Crystalwarrior
1634db7864 Make backgrounds preserve aspect ratio when used with different aspect ratio themes
(e.g. a 16:9 theme would not stretch a 4:3 bg and instead have a letterboxing effect. A 4:3 theme using a 16:9 BG will not stretch the BG but instead center it, making it look like the BG is 4:3 all along.)
2020-03-26 14:41:56 +03:00
sD
dd2daf55f3 it's basically the same packet minus requesting the next list 2020-03-15 13:20:33 +01:00
sD
beb469cd80 Merge branch 'master' into pr/104 2020-03-15 13:12:52 +01:00
sD
1b0930b977 move area list detection algorithm into a seperate function 2020-03-13 16:29:01 +01:00
Crystalwarrior
4c8bf57268 VERSION 2.8.3 BABYYYYYYYY
Add "KFO" to version display in lobby so it's even clearer this is a custom client
Add a settings button to the Lobby screen
2020-03-12 18:34:51 +03:00
Crystalwarrior
7aa24bf501 Add a search bar for server list
Add options for sticky sounds, sticky effects and sticky preanims
Optimize the search for areas and music (previously, area search also searched for music in the background, causing lag with huge music lists)
2020-03-12 18:09:56 +03:00
in1tiate
a2f1a79bc9 add theme support 2020-03-08 05:44:49 -05:00
stonedDiscord
b668bb2276
Merge branch 'master' into music_list_update 2020-03-06 16:43:03 +01:00
Crystalwarrior
39f9d1043e Add sorting by name for lobby 2020-03-05 21:23:42 +03:00
Crystalwarrior
a4e448576b Make pos dropdown more abstract and actually useful by letting servers send only pos you can actually access.
Pos dropdown system also reads the actual bg folder of the current BG to see all the created pos.
2020-02-24 22:20:43 +03:00
sD
0123b4d192 move the click event back to the slots 2020-02-23 03:19:05 +01:00
sD
2716416b62 only load bass plugins when bass is included 2020-02-21 18:00:23 +01:00
sD
f93459ed0e remove fuck 2020-02-21 17:18:25 +01:00
sD
c8b11b398a fix audio 2020-02-21 16:48:11 +01:00
sD
cb1ed6d60d put minor version back 2020-02-21 16:43:40 +01:00
stonedDiscord
7d55ff01f5
Merge branch 'master' into 2.7 2020-02-21 16:39:32 +01:00
Crystalwarrior
43c4e3e9d7 Network effects folder so you don't need to modify your own char.ini to see custom effects 2020-01-17 18:41:27 +03:00
Crystalwarrior
6138bb107b Separate screenshake options button from effects options button
Add a color logging option button
Update version to 2.8.2
2020-01-15 16:42:44 +03:00
Crystalwarrior
eb014a9778 Add a message delay modifier when punctuation is reached to simulate Ace Attorney 1 chat parsing (replicating the effect where characters would make a short pause, as if saying the line out loud)
TODO: Make this a configurable thing
2019-12-05 22:46:26 +03:00
Crystalwarrior
159f073514 Set version to 2.8.1 woop woop 2019-11-21 00:23:35 +03:00
Crystalwarrior
a49c4a503b add .opus support 2019-11-04 16:10:54 +03:00
Crystalwarrior
773a61f3d4 Make the music search bar search in music metadata instead of just the displayed name (aka the filepath)
Make sfx player able to play sfx without the file extension provided
Allow blipsounds to seek in blips/ folder to allow better categorization, as well as direct sound references
add get_emote_blip for detecting the blipsound used by an emote. Currently unused.
Less strict/hardcoded custom objection detection system
Allow system (charid -1) messages, and don't do the same message detection on blankposting
Allow objection, hold it, take that and custom sound players to detect sounds that are not exclusively .wav
2019-11-04 15:32:01 +03:00
Crystalwarrior
bef368e986 Allow gender (blip sounds) that don't use sfx-blip naming convention
Fix "prezoom" packet being ignored
Allow char.ini's to indicate a zoom w/ preanimation by using emote_mod=4

((ALL OF THESE ARE UNTESTED - TESTING NEEDED!))
2019-10-23 05:08:20 +03:00
Crystalwarrior
3595fd11e6 oops 2019-10-20 18:35:28 +03:00
Crystalwarrior
7d73347618 Version 2.8.0.5
Add Killing Fever Online icon (mac icon not updated yet)
2019-10-20 17:59:38 +03:00
Crystalwarrior
a9a0f65ddb Allow area list to contain metadata (as well as categories for future expansion)
Fix backwards compatibility breaking when you join a server that doesn't support effects after previously joining a server that does
2019-10-12 17:57:18 +03:00
Crystalwarrior
91eeffb959 Courtroom Fonts can now have the "sharpness" setting (pixelated/no anti alias) 2019-10-06 13:47:36 +03:00
Crystalwarrior
9f543f9ef7 I HAVE CONQUERED BASS HELL
BEHOLD, LOOP_START AND LOOP_END MUSIC POINTS! It reads the songname.mp3.txt file, looking for loop_start, loop_length and loop_end in samples
MUSIC EFFECTS SYSTEM THAT CAN ***COMMUNICATE WITH THE SERVER***, WOAHHHHHHHHH!
RIGHT-CLICK CONTEXT MENUS TO ENABLE/DISABLE SPECIFIC MUSIC EFFECTS
MUSIC EFFECTS ENUMS
Fix an issue with music looping
2019-10-05 20:32:19 +03:00
Crystalwarrior
65332f209c fucking hell it's not accurate and doesn't match the absolute quality when it's played back in audacity jesus christ will the torture ever end 2019-10-04 14:41:33 +03:00
Crystalwarrior
9451822e09 Fix move func making characters slowly move to the left every frame on animated chars which are sized differently from viewport
Add a new get_qfont function
Fix message box font being different from every other font due to incorrect font loading scheme
Fix ui_evidence_save and ui_evidence_load tooltips being wrong
2019-10-03 23:17:21 +03:00
Crystalwarrior
bdef10ace5 Remove /rainbow as clientside slash commands are cursed. I shall purge all clientside slash command memery soon...
Fix /save_case iterating from last to first instead of first to last
Implement private evidence saving/loading to and from an .ini file
2019-10-03 17:01:41 +03:00
Crystalwarrior
829604e808 Positional evidence implemented. Click a button to change between private/global evidence list.
There's also a button to transfer evidence to global/private, context sensitive.
TODO: Save/load private evidence list
2019-10-03 15:44:18 +03:00
Crystalwarrior
e3ddc41cc8 Add rightclick context menus to sfx dropdown, iniswap dropdown and effects dropdown to open the ini's and respective folders
try to fix settings menu (I failed)
2019-10-02 20:28:42 +03:00
Crystalwarrior
4c23e15935 Rewrite pairing character ordering logic to instead operate based on a user-accessible drpodown menu (it's a dropdown for the future when there's more options)
Fix current charmovie breaking offsets
Make pairing offsets applicable even without a pairing partner, making it a generic offset
Fix the chat message hardcoding max colors to 8 (when it should be max_colors)
Come up with a way to convey the ordering information without creating an extra new packet in a cool way (backwards compatibility AND less clutter!)
More info on the evidence_x and evidence_ok tooltips
Don't mute music when you switch to CSS anymore
2019-10-02 01:20:00 +03:00
Crystalwarrior
292c425c78 Fix music volume being weird due to m_volume being shared by ambience and music at the same time
Fix version= being wrong
2019-10-01 04:58:57 +03:00
Crystalwarrior
4f738bfe34 Fix some read_file errors on effect loading
Make FM packet only fetch music, and new FA packet to fetch areas (this way you don't have to reload the entire music list just to get new areas)
Fix a possible segfault with emote lists if emote list size is bad
Hide casing button if server doesn't support casing
Hide the remove buttons by default for iniswaps and sfx list so they're not clickable when they shouldn't be
Prevent background from being displayed unless the server asked us to
Fix some redundancy surrounding current_side
Rework music list so list_music doesn't care about search bar and the hiding is actually done in the search function
Implement text centering, rightening and justifying
Fix text scrolling meme that happened with \n and skipped chars
Fix the pos dropdown not actually caring if you selected jur and sea pos.
Fix the pos dropdown sending like a million packets when scrolled through.
Prevent characters from being incorrectly resized if a different-scaled character speaks
Fix character select screen letting you choose characters that the server doesn't want us to be
2019-10-01 01:07:03 +03:00
Crystalwarrior
9bf41a714b Bump up version numbers to 2.8.0 2019-09-29 16:51:37 +03:00
Crystalwarrior
d5cbb085db Update Bass.dll headers to newer version
Remove a bunch of comments
Add lqapng and lqwebp to try and get apng and webp support to fuckin load already
2019-09-29 03:27:36 +03:00
Crystalwarrior
b0f11e53df Strip out QRandomGenerator because it's "too new" of a module (linux build does not compile with it)
Add QPluginLoader checks for qapng and qwebp
2019-09-28 22:00:16 +03:00
Crystalwarrior
709ebb7e18 Fix AOEvidenceDisplay not respecting the size of the viewport properly and breaking if a static image was used for evidence appearance
Fix an issue with chat message being resized before the chat box is in reload theme
2019-09-28 20:43:19 +03:00
Crystalwarrior
d3a58770d3 Overhaul the evidence system:
You can now press the checkmark to save evidence. The checkmark only appears when your edited evidence differs from evidence on the server.
You will now be alerted if you try to exit out of the evidence with unsaved changes (pressing "X")
Fix double-clicking on image name not doing anything
You will now be alerted if the evidence changed as you were editing it
Add tooltips
Make an evidence_close function that can be referred to from multiple places
2019-09-28 20:22:38 +03:00
Crystalwarrior
a3d1d5bf9d i did it
i did the thing

Final overhaul of filter_ic_text
Fix spoken colors not being actually spoken
Fix a message of ()()()() spamming idle/talking animations (instead it just does the idle animation until you feed it an actual character)
Prevent spamming of play_idle and play_talking on the fastest text speed
Properly escape html and construct a message that works with characters &, <, >, ", etc. for filter_ic_text
Turn whitespace into html entities to prevent html from eating it up (alternative/better solution would be to erase excessive whitespace entirely but yaknow, some niche applications, whatever)
Fix filter_ic_text not displaying the best string it could in ic logs (strip html, display newlines as \n, etc.)
Scroll the scrollbar of the message box correctly according to some real wacky magic stuff I'm doing here. Let's hope there's no situations where it desyncs from the actual text.
2019-09-27 15:11:46 +03:00
Crystalwarrior
b67f083506 Optimize color markdown stuff properly by creating lists and preloading things 2019-09-25 03:40:44 +03:00
Crystalwarrior
923548c997 Hellcommit of doom and suffering
Create two new helper functions - get_chat_markdown and remake read_char_ini_tag to be read_ini_tags for more general purpose
Modify aolineedit to support preserving selection after unfocusing (building this for using dropdown list for setting colors), as well as remove the setReadOnly functionality and use it in signals instead
Overhaul the color system to get rid of inline colors, allow full customization of colors and usage of configuration files for every facet of how a color functions (should we be talking, should we remove that markdown char, etc.)
Complete overhaul of color markdowns system

TODO: Make this thing not lag to hell, fix chat messages hogging the IC as the animation never ends apparently
2019-09-25 02:05:52 +03:00
Crystalwarrior
7097053723 Change all instances of "colour" to "color" for consistency's sake
Overhaul inline colors system to properly support additive text and further expansion
Add two new colors - Gray and Blank, the latter being used for IC parsing.
Instead of adding text symbol by symbol, reveal more of the already-rendered text instead so that it properly anticipates words that need to be on the newline.
Changed the append_ic function slightly so it appends ": " to text only after it's no longer needed.
Made gray color less inconsistent with everything else
2019-09-24 21:24:25 +03:00
Crystalwarrior
d8857aa2e4 When the background is changed, display it in the correct position as dictated by the server packets
Add a new "set pos" packet
Udpate the pos dropdown according to the current pos
2019-09-24 00:38:26 +03:00
Crystalwarrior
398f37794f Make music list a QTreeWidget instead for easier category searching, etc.
Temporarily allow music suffix until I let the client perform a fileExists check similar to how images are handled (.mp3? play mp3, if not mp3, play .ogg, etc. etc.)
2019-09-23 15:48:35 +03:00
Crystalwarrior
2c265ebc0b Clear the screen and display the background in the correct position when background change func is called 2019-09-21 00:23:01 +03:00
Crystalwarrior
842b829bee Tweak the ambience/crosfade layer to fade in regardless of another sample being there
Fix music not being looped sometimes
Prevent channel less than 0 from being passed
Set up a new music display element with an attached music name, it displays a scrolling text of the currently playing music
Fix music packet processing issues
Make SFX slider responsible for all music channels besides 0 (actual music)

scrolltext.cpp code recipe was taken from https://stackoverflow.com/questions/10651514/text-scrolling-marquee-in-qlabel - thanks to leemes for that one, I only adapted it for newer C++ version and tweaked some stuff.
2019-09-20 22:11:37 +03:00
Crystalwarrior
6dd0845f1c Better scaling algorithm for characters of variable size 2019-09-20 17:03:49 +03:00
Crystalwarrior
d3f23708c4 Revert buttons using setIcon and use a better stylesheet method instead
Fix evidence buttons and emote buttons being hardcoded size
2019-09-20 15:54:45 +03:00
Crystalwarrior
3899dbe0bd I dunno what the fuck was I doing for the past 4 hours but I made crossfading music work.
Music packets can receive channel to play the song in and the crossfading option too.
2019-09-20 05:30:07 +03:00
Crystalwarrior
a175a1884c Concurrent evidence updating!
Similar to the way Google Docs work, the evidence will be updated immediately as you make any changes to it.
2019-09-18 20:02:51 +03:00
Crystalwarrior
cda7d430b3 use SetIcon for AOEmoteButton instead of stylesheets
Fix aolineedit not sending the double_clicked signal
Add tooltips for emotes that display the number and the emote_comment (name)
Add similar tooltips to evidence buttons
Resolve an issue where you could edit evidence name without double-clicking a piece of evidence first
2019-09-18 19:43:11 +03:00
Crystalwarrior
0fe94d5d9f Evidence and emotes reloading when reload_theme is pressed
Update evidence a bit and change the way it sets images to something much better and less confusing
Update the hovering logic a bit so there's less weird occurences happening e.g. evidence button is deleted
2019-09-18 17:34:22 +03:00
Crystalwarrior
04daff7446 When the realization button is pressed, update the Effects thing too. 2019-09-18 15:46:43 +03:00
Crystalwarrior
2d329cdbd2 Bugfixes for the thing and how it orders things 2019-09-18 05:45:02 +03:00
Crystalwarrior
ad057c6f7a make icons for effects n shit
they're grabbed from the effects/icons/*same name as effects*
gotta be .png or w/e
i need my sleep
2019-09-18 05:22:00 +03:00
Crystalwarrior
605e15bb8c Implement effects system that reads your folder in theme/effects, or misc/<folder name>/<effects>
Add an effect packet
Allow aomovie to be fed a direct path
Add some really terrible helper functions that shouldn't exist, sorry.
2019-09-18 04:14:52 +03:00
Crystalwarrior
e151964785 Add a sfx list that allows you to choose custom sfx from a list. Allows the same amount of customization as the iniswap list.
It tries to read soundlist.ini in the character folder first. If it can't find it, it will fall back to the theme's character_soundlist.ini.
It will only save the soundlist.ini if it differs from the character.soundlist.ini.
There is currently no way to dynamically change sound delay atm but the function for it is there.
Add more tooltips, my favorite!
2019-09-17 23:50:01 +03:00
Crystalwarrior
9d20cf0322 Streamlined ini swapping so the user can set up multiple character folders associated with a character.
This will save to the character folder's iniswaps.ini. You can click on the dropdown and edit the text inside to add an iniswap, and press the [X] button that'll appear next to it to remove the ini swap.
Recode the enter_courtroom and add a new update_character feature - the two are now separate and responsible for different things. The courtroom will reload the whole theme and widgets while the character is only responsible for all ui elements related to the character. This drastically improves performance when switching characters using /switch or something
Add a set_char_ini helper function that allows you to modify the character variables. For now only used to set name= field when iniswapping
2019-09-17 18:51:40 +03:00
Crystalwarrior
6747bfdd5e Allow lobby server descriptions to parse links
Fix bad reference to ui_emote_right image
Fix chatbox being part of the viewport (gets cut off if it's outside)
2019-09-17 03:31:18 +03:00
Crystalwarrior
13221319b8 Change get_stylesheet to return text of a parsed stylesheet file, its functionality was transferred to get_tagged_stylesheet
Remove some useless/unused ui elements
Implement stylesheet for courtrooms in a way that lets the end user modify a lot of its elements
Use get_image_suffix for evidence_appear images
2019-09-16 23:22:34 +03:00
Crystalwarrior
f3c7beab70 Chat arrow indicator to inform you if the current message stopped being processed
Can be modified from the theme in chat_arrow of courtroom_design.ini
Uses chat_arrow .png/.gif/etc.
2019-09-16 21:10:21 +03:00
Crystalwarrior
b085be5a2a Add two new helper functions - get_design_element and get_static_image_suffix
Modify all set_image calls to utilize said suffix helper function
Dynamically change betweehn chatblank, chat, chatmed, chatbig based on the showname's length
Use char.ini showname if showname is set to whitespace (doesn't yet check if char.ini showname is also whitespace)
2019-09-16 21:08:43 +03:00
Crystalwarrior
b037edc9d8 Add additive text option where your messages are added to your previous one, fully networked and ready for the server
Adjust some pointless static bool casts to be actual logic checks
2019-09-16 18:11:19 +03:00
Crystalwarrior
9b39b7d6aa Allow char.ini to override the chat font and font size with chat_font = and chat_size =
Scream at the coders that decided hard-coding fonts and colors was a good idea (gotta properly let the themes modify that later)
Fix a lot of ui elements not properly respecting the themes and their colors
add a set_qfont method for those situations that need it
Allow the theme to change sender colors for ooc and ms chatlogs
rename url parser variable to something more immediately apparent as to what it is for readability's sake
2019-09-16 06:09:39 +03:00
Crystalwarrior
03ebad6bb6 Add expanded style sheet support
Allow lobby fonts to happen
2019-09-16 04:16:59 +03:00
Crystalwarrior
6785f35762 Begin implementation of scroll bars in the options menu 2019-09-16 01:20:03 +03:00
Crystalwarrior
2268df7b15 Update preanim_timer to follow the weird ass time_mod constant 2019-09-16 01:17:13 +03:00
Crystalwarrior
bf999f195a Add file reading, writing and appending functions that create folders if bool is true
Fix server_address not being properly created in packet distribution
Create a log file when you join a server in the logs/<server name>/<logname>.log and update it every time there's a new chat entry
minor refactor of chatlogpiece
2019-09-16 01:16:37 +03:00
Crystalwarrior
1b36be9dbc Add an option for networking frame-specific effects
I'm starting to realize the options menu/system needs a complete overhaul at this point. (Auto-generating options menu, anyone?)
2019-09-15 21:39:39 +03:00
Crystalwarrior
ba28c244aa Add an opton to enable/disable screenshake + flashing
Fix moderation guard button not doing what it's supposed to (enable/disable modcalls)
Fix moderation guard button appearing with failed logins
Fix the option to toggle looping sfx not doing anything
2019-09-15 21:15:40 +03:00
Crystalwarrior
661ec87646 Implement networking for frame-specific effects data sending/parsing if the server supports it
Reorganize charmovie.h a bit and make some functions private
Add a new helper function "read_char_ini_tag" which returns a qstringlist of all key=value strings associated with the tag
2019-09-15 20:02:24 +03:00
Crystalwarrior
e94640b349 Looping SFX system - Defined this way:
[SoundL]
sfx-roar = 1
2019-09-15 17:44:47 +03:00
Crystalwarrior
a2f9df4042 Finally implement frame-specific effects such as screenshake, realization flash, sound effects, etc.
Fix screenshake animation modifying the default positions of shook elements
Fix aomovie sometimes not playing the last frame and causing lagspikes due to the delay() method
2019-09-15 17:44:02 +03:00
Crystalwarrior
4db1140074 Add a bunch of cool refactors to support variable speed percentage
Partially bring back the differing [Time] duration variable, however, the speed of the image will not be adjusted to accomodate it due to the need for using m_reader to read through every frame to determine the final full delay value (which tanks performance).
Comment all the functions for the charmovie in aocharmovie.h
2019-09-15 14:26:57 +03:00
Crystalwarrior
37d192b430 Load frames as they're needed instead of loading everything at once, and cache them for optimization. The cache is cleared when a new animation is played.
Resolve an issue where if a preanim transitions into (a)idle it would get stuck on the first frame of that (removed the ticker->stop();)
2019-09-15 02:14:40 +03:00
Crystalwarrior
938f1aeea1 Optimize the heck out of animated images. There is no lag after the image is loaded now.
HOWEVER, there's lag when the image is first loaded due to the aspect ratio and sizing (at least with .apng's).
2019-09-14 22:35:02 +03:00
Crystalwarrior
ab30cca586 Use a ticker and QImageReader instead of QMovie
Issue: absolutely fucking broken, needs shittons of fixing or ditching. Might not be that efficient, anyway.
2019-09-14 19:50:46 +03:00
Crystalwarrior
51c97ad51c Allow [Time] to be blank for pre-anims to not be required to use it
play_talking and play_idle reduced in useless code
2019-09-14 19:38:56 +03:00
Crystalwarrior
4645d9dd08 Add a blip sound QElapsedTimer so blipsounds don't play more frequently than 60ms to preserve all of our ears.
Adjust the message display speeds to feel more accurate to AA, with }}} speed displaying text instantly for that section
2019-09-14 00:46:46 +03:00
iamgoofball
1139bf5cd0 Bass.dll functionality-based clientside music looping system by using channel loopable flags (no use of QTimer required)
Implement Goofball's AOV loopable music server message where any value that's not -1 when the length of the handle_message packet is longer than 3 will not loop the music (still confused about this but w/e)
2019-09-14 00:28:27 +03:00
Crystalwarrior
040898feff Set up screenshake button ui
Rewrite Goofball's doScreenshake() function to be much more modular and multi-purpose (also rename to do_screenshake() to match other functions)
Add networking needed to make screenshake work. Works with AOV version of tsuserver3 (button screenshake only so far).
Add get_theme_pos helper function, currently unused.
2019-09-13 15:11:30 +03:00
Crystalwarrior
ab072132c3 Merge branch 'aomovies'
# Conflicts:
#	include/aomovie.h
#	src/aomovie.cpp
#	src/courtroom.cpp
2019-09-13 12:00:27 +03:00
Crystalwarrior
86523bb101 Rename dubious "duration" to "default_duration" for play function in AOMovie class 2019-09-13 11:56:22 +03:00
Crystalwarrior
bb8edab579 Make shout, verdict and wtce default duration values into constants 2019-09-13 11:41:59 +03:00
Crystalwarrior
5c69d10cd5 Add a tool tip to blip rate settings
Adapt the blip rate to allow variable speed value array sizes
2019-09-13 11:31:06 +03:00
Crystalwarrior
455e020b19 Make log go downwards by default
Rename kill_music_on_object to objection_stop_music for readability
Update blip rate (faster overall, more accurate to the trilogy) - based on AOV values
Update default blip rate to be "once every two symbols"
2019-09-13 11:13:50 +03:00
iamgoofball
8a5bc8632e Kill Music on Object option
(todo: actual functionality, cherrypicked from Goofball's 2.7 branch)
2019-09-13 00:34:15 +03:00
Crystalwarrior
3b3507df60 Fix compilation error
Allow realization flashes to be animated images by making them AOMovies
Eploit the newly added 'duration' system for realization AOMovie

(cherry picked from commit bb98f79083)
2019-09-12 22:46:06 +03:00
Crystalwarrior
5a31516a36 Remove unecessary hard-coded timers for the witness testimony .png
Make the witness testimony use AOMovie instead of AOImage
Remove pointless "testimony_in_progress" variable
CONTROVERSIAL: Make the witness testimony indicator be position-ignorant so as to reduce the amount of hardcoding and allow broader usage of the witness testimony system (For example, Danganronpa investigation indicator, etc.) - This should not affect how the testimony indicator is received currently, as witness testimony usually requires the entire rest of the court to shut up until the cross-examination either way.

(cherry picked from commit 932f430b68)
2019-09-12 22:45:52 +03:00
Crystalwarrior
e76a83ddfe Allow AOMovie to have timers that take priority over the animated image frame count
Set it up so feeding the timer value when playing the AOMovie would use the timer but only in cases where a non-animated image is used
Update shouts and wtce to pass the 'duration' argument which will be used if the image used is non-animated. Otherwise, prioritize the animated image duration.
2019-09-12 22:45:02 +03:00
Crystalwarrior
280abedf63 Merge branch 'music_list_update' 2019-09-12 22:26:00 +03:00
Crystalwarrior
bb98f79083 Fix compilation error
Allow realization flashes to be animated images by making them AOMovies
Eploit the newly added 'duration' system for realization AOMovie
2019-09-12 19:37:44 +03:00
Crystalwarrior
932f430b68 Remove unecessary hard-coded timers for the witness testimony .png
Make the witness testimony use AOMovie instead of AOImage
Remove pointless "testimony_in_progress" variable
CONTROVERSIAL: Make the witness testimony indicator be position-ignorant so as to reduce the amount of hardcoding and allow broader usage of the witness testimony system (For example, Danganronpa investigation indicator, etc.) - This should not affect how the testimony indicator is received currently, as witness testimony usually requires the entire rest of the court to shut up until the cross-examination either way.
2019-09-12 19:03:42 +03:00
Crystalwarrior
2a899b1476 Allow AOMovie to have timers that take priority over the animated image frame count
Set it up so feeding the timer value when playing the AOMovie would use the timer but only in cases where a non-animated image is used
Update shouts and wtce to pass the 'duration' argument which will be used if the image used is non-animated. Otherwise, prioritize the animated image duration.
2019-09-12 18:28:08 +03:00
Crystalwarrior
3b415f5a70 Expand get_image_suffix to fall back on .png last
Reorganize the file_exists checks to be an array iterator instead for much less code duplication and easier ordering of priority
Reorganize desk and set_image loading on AOScene class, resolve issues with last_image setting to prevent animations from being restarted when characters talk on the same pos in succession
Apply get_image_suffix for seancestand and jurystand searches
TODO: At the moment, if you feed a .png shout, it will send the "Done" signal on the first frame (frame 0), not showing you the .png image at all. The shout code should be reorganized to allow static images to be displayed for exactly 720ms - the standard AA objection length. Usage of the timer similarly to the realizationflash.png might be possible.
2019-09-12 15:40:19 +03:00
Crystalwarrior
c2fd3796a9 Add clear_music and clear_areas
Comment out the index as it can be potentially confusing alongside "true" area numbers
Add "FM" to Packet Received that would reload the areas and music list

TODO: Test this with arup systems
2019-09-11 00:49:30 +03:00
Crystalwarrior
7e2ec58c7e Prevent the animated background/foreground from restarting itself if the image is the exact same as the currently playing one 2019-09-10 23:26:03 +03:00
Crystalwarrior
7378205523 Expand .apng and .webp support for get_image_suffix
Add get_image_suffix for all .gif's so that all animated pieces can be .webp or .apng instead
Expand on .webp .apng support and clean up the code somewhat
2019-09-10 21:57:06 +03:00
stonedDiscord
5807410b1d doubleclick to join a server 2019-08-20 18:35:42 +02:00
stonedDiscord
d94d2fb405 read and store qt audio device 2019-08-19 19:38:47 +02:00
stonedDiscord
35f2333403 list audio devices (doesn't apply it yet) 2019-08-19 19:06:41 +02:00
stonedDiscord
49be444d74 OOP 🏪 2019-08-17 21:09:13 +02:00
stonedDiscord
4700902551 fix qaudio volume 2019-08-17 20:47:41 +02:00
stonedDiscord
7fe64163ea
Merge pull request #88 from AttorneyOnline/i18n
I18n
2019-08-08 00:20:51 +02:00
David Skoland
05debed60b removed meaningless modifiers (see https://software.intel.com/en-us/articles/cdiag858) 2019-08-05 18:42:19 -05:00
stonedDiscord
078ad79b65 language setting 2019-08-05 23:30:00 +02:00
stonedDiscord
3f0ff19615 what was gbp thinking 2019-07-29 21:58:49 +02:00
oldmud0
762702aff8 Make all strings translatable 2019-07-28 19:00:34 +02:00
oldmud0
e3187b6824
Bump version to 2.6.2 (#87) 2019-07-27 10:11:48 -05:00
windrammer
2dbd0c1482 Remove C style char buffer in favor of QByteArray 2019-07-22 21:39:37 -05:00
oldmud0
e0c49ceb07 Merge branch 'bass-optional' into 'master'
Bass+discord optional

See merge request AttorneyOnline/AO2-Client!59
2019-07-20 16:57:27 +00:00
cents02
82db3e2263 Revert "More bug fixing."
This reverts commit ca84ba516fc892deaeafc18b23ad5a06822b29f5
2019-07-20 16:33:33 +00:00
stonedDiscord
4a2a167f7d Merge branch 'master' into 'bass-optional'
# Conflicts:
#   Attorney_Online.pro
#   include/aoapplication.h
2019-07-20 16:20:05 +00:00
David Skoland
5eccabcad1 Less insane debugging; minor refactoring (!75) 2019-07-12 23:00:25 +00:00
oldmud0
f489f2064c Merge branch 'ci' into 'master' 2019-07-02 21:11:59 -05:00
Cerapter
2e4f0117b0 Text is now advanced based on graphemes, rather than bytes. 2019-05-09 23:49:20 +02:00
stonedDiscord
1504aaf6b2 saves space i guess 2019-03-13 13:05:10 +01:00
stonedDiscord
1514ffea6a qt music 2019-03-12 20:47:47 +01:00
stonedDiscord
71da60b5d6 sfx tested and works 2019-03-12 20:14:54 +01:00
stonedDiscord
0b6f376f8f qt can play the blips just fine 2019-03-12 19:53:06 +01:00
stonedDiscord
8a23f10040 gcc didn't like that 2019-03-12 00:27:22 +01:00
iamgoofball
0dcf8a7f17 bump the version number to 2.7.2 2019-02-01 17:20:08 -08:00