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.
Same for chat indicator
Rename themes/ name of shouts from "objection.gif" to "objection_bubble.gif" naming convention for consistency
Reorganize the default theme a bit as well as to support new elements
Fix the background size not being updated properly due to bad order of reload theme
Set up proper tooltips for sfx dropdown, iniswap dropdown, custom objection
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
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!
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
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
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)
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
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
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
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
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
Stop the animation for the side player char in pairing so as not to affect anything
Remove the "DOOM" packet as anyone who has the source code can just remove it anyway
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)
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.
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)
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)
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.
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
E.g: /save_case case1 lfp . It takes court evidence but leaves the doc and cmdoc options blank to be entered manually(if anybody actually puts anything).