Commit Graph

224 Commits

Author SHA1 Message Date
Crystalwarrior
9695c621c2 so this solution doesn't really work. It makes the chat message box appear over the character select screen.
this bug only occurs when the chat box is initialized inside the viewport. Annoying as hell but at least it can be reproduced reliably.
2019-09-17 00:56:39 +03:00
Crystalwarrior
684e26cb77 Change the way sideplayer/playerchar ordering works to be stackUnder instead of Raise so it doesn't break anything (like the chatbox) 2019-09-16 23:54:42 +03:00
Crystalwarrior
19ff6cd5f8 Fix an incredibly obscure bug where if the viewport message is inside the viewport itself it would not let you scroll it up should the message be too long. 2019-09-16 23:53:32 +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
6afce05661 Adjust options dialog to use a "row" variable for adding new elements easier
Add the "allow shake/flash" button
Add the "enable looping SFX" button
2019-09-15 21:17:12 +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
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
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
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
stonedDiscord
047ce04631 fix mac content loading
it now looks for the content next to the .app bundle and not inside it
2019-08-11 23:58:43 +02:00
stonedDiscord
7fe64163ea
Merge pull request #88 from AttorneyOnline/i18n
I18n
2019-08-08 00:20:51 +02:00
stonedDiscord
0247ca07fe show current setting 2019-08-07 14:51:21 +02:00
stonedDiscord
338dd2003e missed a backwards lowercase N with accent mark 2019-08-07 14:22:18 +02:00
stonedDiscord
c6b949335a +1 on style 2019-08-06 21:27:27 +02:00
stonedDiscord
47eb36789e numbered arguments for kick and ban torture 2019-08-06 21:25:33 +02:00
stonedDiscord
dd325de31e use languages own name 2019-08-06 21:22:49 +02:00
stonedDiscord
c974ab01ca add es and ru to options and translate a lot more strings from the courtroom 2019-08-06 20:29:04 +02:00
stonedDiscord
078ad79b65 language setting 2019-08-05 23:30:00 +02:00
stonedDiscord
cab5310029 missed 2 lobby related ones 2019-08-05 22:20:04 +02:00
stonedDiscord
230b1a7622 numbered arguments and more strings 2019-08-05 22:07:39 +02:00
stonedDiscord
223f69d67a eat shit tsuserver 2019-08-05 21:57:17 +02:00
stonedDiscord
df72671105 Revert "make the password field in charselect useful"
This reverts commit 15a48a051c.
2019-08-05 21:54:03 +02:00
stonedDiscord
15a48a051c make the password field in charselect useful
let the server decide what to do with this
2019-08-05 18:53:34 +02:00
stonedDiscord
77a536e2a9 Merge branch 'master' into i18n 2019-07-30 20:43:12 +02:00
stonedDiscord
afbbc5476b move #ifdef BASSAUDIO so the audio tab isn't deleted as a whole 2019-07-30 20:42:33 +02:00
stonedDiscord
460805d072 make discord integration the same for all locales 2019-07-30 19:42:38 +02:00
stonedDiscord
adf1a97304 adjust translation path in main.cpp 2019-07-29 21:54:35 +02:00
stonedDiscord
b7012cec10 fixed 2 strings 2019-07-29 21:46:26 +02:00
stonedDiscord
259422c4af at least the german translation works 2019-07-28 20:39:36 +02:00
stonedDiscord
582417a902 german translation 2019-07-28 20:19:09 +02:00
stonedDiscord
69e4da4c43 it didn't like doing that with a pointer 2019-07-28 19:17:47 +02:00
oldmud0
762702aff8 Make all strings translatable 2019-07-28 19:00:34 +02:00
stonedDiscord
319cb0adee translate new features. is i18n dead 2019-07-28 18:43:46 +02:00
oldmud0
56ddd024eb
Fall back to Sans if no font setting found
Sigh...
2019-07-27 21:19:45 -05:00
stonedDiscord
98389e7e03 1% more readable 2019-07-26 01:37:11 +02:00
stonedDiscord
71d91e5012 fixed copypasta mistake on objection sfx 2019-07-26 01:33:29 +02: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
Windrammer
b15c6f15f0 Fix bug #82 causing a client crash if /save_case was used without providing a courtroom state 2019-07-11 09:05:26 -06:00
cents02
432069844a Revert "More bug fixing."
This reverts commit ca84ba516fc892deaeafc18b23ad5a06822b29f5
2019-07-07 22:32:57 +00:00
oldmud0
1552f3f19c Merge branch 'master' into 'master'
Fix escaped HTML characters screwing up the grapheme cluster sizes.

See merge request AttorneyOnline/AO2-Client!61
2019-07-07 14:45:16 +00:00
cents02
d07dd1d5fe Permanent and not temporary solution for evidence. Supports up to infite subfolders. 2019-07-03 08:48:04 +00:00
cents02
ca3f113377 Fixed evidence not recognizing subfolder issue. Can support 1 folder tho. 2019-07-01 18:50:30 +00:00
cents02
099fea176c Indentation 2019-06-30 22:09:12 +00:00
cents02
f826ba390b New feature! /save_case . Takes two parameters, name and cr status.
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).
2019-06-30 21:47:48 +00:00
cents02
ae85525780 Resolved requests/issues. 2019-06-03 09:00:24 +00:00
cents02
09d8e9e7a4 Update courtroom.cpp 2019-05-31 21:52:22 +00:00
cents02
1f9a1bdd5d Fixed issues #47 on both client and server 2019-05-31 21:47:47 +00:00
Cerapter
c8a4f69d14 Fix escaped HTML characters fucking up the grapheme cluster sizes. 2019-05-10 20:49:59 +02:00
Cerapter
2e4f0117b0 Text is now advanced based on graphemes, rather than bytes. 2019-05-09 23:49:20 +02:00
stonedDiscord
785168f8d3 add a default for this 2019-03-13 22:05:36 +01:00
stonedDiscord
44d433d941 sfx glitch 2019-03-13 22:05:24 +01:00
stonedDiscord
bdde8822f4 begone, commented code 2019-03-13 21:36:12 +01:00
stonedDiscord
ece08930e3 setVolume doesn't take floats 2019-03-13 13:06:11 +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
6e93d6e1be discord optional v2 2019-03-12 19:30:03 +01:00
stonedDiscord
92c54ba2eb Revert "make discord optional"
This reverts commit 744c100159.
2019-03-12 19:27:13 +01:00
stonedDiscord
744c100159 make discord optional 2019-03-12 00:27:11 +01:00
stonedDiscord
49938eea0f makes all the bass stuff optional 2019-03-12 00:26:40 +01:00
perplexedMurfy
d62ff4d3af Fix #57 2019-01-08 18:51:20 -06:00
David Skoland
3965a847c2 fixed opus plugin load for macOS 2019-01-06 12:14:00 +01:00
David Skoland
fb076ca7e7 Merge remote-tracking branch 'upstream/master' 2019-01-05 23:00:46 +01:00
oldmud0
6716a4532e Fix APNG preanimations not working (#52) 2019-01-03 21:45:58 -06:00
perplexedMurfy
115fc0ff15 Show ban reason with BD packet
This fully fixes issue 39 with tsuserver3
(https://github.com/AttorneyOnline/tsuserver3/issues/39)
2019-01-03 16:51:33 -06:00
David Skoland
0788b162f1 fixed a crash condition where blip rate is less than 1 2019-01-02 22:28:16 +01:00
David Skoland
110751ac39 added dynamic loading of qapng and fixed mac sound 2018-12-26 22:19:49 +01:00
David Skoland
2a43d56772 muh macos support 2018-12-26 20:04:11 +01:00
David Skoland
1f754776b4 finished ubuntu build script and made default plugin mode dynamic linking 2018-12-26 17:31:43 +01:00
David Skoland
00cfd2750d moved headers into include and cpp files into src + logo into resource 2018-12-26 16:43:08 +01:00