Commit Graph

822 Commits

Author SHA1 Message Date
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
68082309be Merge branch 'charmovie_overhaul' 2019-09-15 02:17:44 +03:00
Crystalwarrior
5419641c1e Revert "2.7.2 way of animating charmovie.cpp ported over"
This reverts commit 14ced5ce15.
2019-09-15 02:17:20 +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
14ced5ce15 2.7.2 way of animating charmovie.cpp ported over 2019-09-14 20:20:38 +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
f225df6f19 Fix objections hiding the character 2019-09-14 14:50:16 +03:00
Crystalwarrior
b608f84100 Resolve a segfault with screenshake, need to determine a better method to finish previous animation (if it exists) properly. 2019-09-14 01:20:01 +03:00
Crystalwarrior
4b452e968d Fix the objection_stop_music option not doing anything
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
2019-09-14 00:48:07 +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
f9b3bd5bb5 forgot to actually uncomment the change, oops 2019-09-13 17:57:30 +03:00
Crystalwarrior
f1b3169713 CONTROVERSIAL: Detach ui_vp_message from ui_vp_chatbox to prevent it from being affected by the screenshake. ui_vp_message still sets position relative to the chat box for now (as doing otherwise would break a lot of themes). 2019-09-13 15:13:40 +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
9aa88b1d6e Use brace constructors instead of << append operator for path lists
Rename gif_path into emote_path for charmovie.cpp
Rename p_gif into p_image for aomovie.cpp
2019-09-13 11:44:50 +03:00
Crystalwarrior
bb8edab579 Make shout, verdict and wtce default duration values into constants 2019-09-13 11:41:59 +03:00
Crystalwarrior
8027bbffad Use brace constructors instead of << append operator for path lists 2019-09-13 11:37:06 +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
Crystalwarrior
ba41b070a2 Cut music on objection if config is enabled for it (does not transmit networked message yet) 2019-09-13 11:03:23 +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
2a5cd56d57 Fixes Objections hiding the current character, instead of overlaying on top of it. (from goofball's 2.7 branch commit e6cb5bd2cf) 2019-09-12 22:55:24 +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
oldmud0
961563daf3
Merge pull request #97 from likeawindrammer/improve-ao_es.ts
Improve the Spanish translation
2019-09-02 11:00:13 -05:00
windrammer
c0d0c5cf1e Mark untranslated strings as done
These are better left off untranslated because they would get cut otherwise thanks to AO having the size for the text tags fixed on the theme files
2019-09-02 00:07:50 -06:00
stonedDiscord
5520c24869 bass blips were slightly too quiet 2019-08-22 21:02:09 +02:00
stonedDiscord
5807410b1d doubleclick to join a server 2019-08-20 18:35:42 +02:00
stonedDiscord
177c56e2b8 move button enabling to ID because not all servers understand FL 2019-08-20 18:28:25 +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
mac builder
2509cc5e0b get mac serial for hdid 2019-08-13 20:01:42 +02:00
mac builder
5bdb57a8ba forgot macdeployqt 2019-08-13 19:13:01 +02:00