Commit Graph

68 Commits

Author SHA1 Message Date
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