Commit Graph

1032 Commits

Author SHA1 Message Date
Crystalwarrior
8d9331a3ea fix interfacelayer not applying stretching when load_image is called (reload theme, chat arrows, etc.) 2021-04-24 02:28:24 +03:00
Crystalwarrior
433b7f3315 Deprecate tick_ms and use actual milliseconds rather than arbitrary 60ms ticks for char.ini [Time]
Fix an extremely weird case where CharLayer::Play() was not called even on the CharLayer class (I don't understand why inheritance was straight up just ignored)
Fix using preanims with static images just breaking everything
Deprecate weird insanity [Time] with the % sign BS (What was this for again? Literally no one used this nor was aware of it)
Fix text_stay_time timer firing even if we're immediate
Just in case, stop the text delay timer when start_chat_ticking is called
2021-04-24 01:44:52 +03:00
oldmud0
6e3435ddba Add setting for default scaling method 2021-04-23 16:09:25 -05:00
oldmud0
60daac3823 Move other duplicate reset calls to their own method 2021-04-23 14:29:16 -05:00
Crystalwarrior
0a1a47c920
Expand .css power by giving object names to all AO UI elements (#534)
* Fix ic chatlog placeholder text not being translated
* Fix inconsistent/nonsensical path resolution for the backwards-compatibility misc/default/config.ini vs themes/current_theme/misc/default/config.ini

Co-authored-by: in1tiate <32779090+in1tiate@users.noreply.github.com>
2021-04-23 14:20:31 -05:00
Crystalwarrior
31abe0c848
Fix get_court_sfx using latin1 instead of utf-8 (#540)
Co-authored-by: in1tiate <32779090+in1tiate@users.noreply.github.com>
2021-04-23 14:17:45 -05:00
Crystalwarrior
de4115e20a Merge branch 'master' into crystalwarrior/demo-reload 2021-04-23 16:12:35 +03:00
in1tiate
66f2369af2
Fix Cyrillic characters not being read correctly from QSettings inis (#535)
* set ini codecs to utf8

* fix color config reading in Latin1 rather than Utf8
2021-04-23 02:18:56 -05:00
oldmud0
93c8befece
Merge pull request #538 from AttorneyOnline/fix/showname-enable
Fix shownames disappearing forever if a message is sent while the shownames checkbox is unticked
2021-04-23 01:58:55 -05:00
oldmud0
b7585a1c6f
Merge pull request #533 from AttorneyOnline/fix/regression-charlayer-path
Fix regression that won't allow us to give a direct base/ path to a char emote
2021-04-23 01:57:24 -05:00
Crystalwarrior
9fbe899c0e
Automatically fix desynced demo files with issues pre-#496 PR (#532)
* Implement a demo auto-fixing solution. If the client detects a pre-2.9.1 demo file, it will prompt the user if they wish to correct it, since otherwise the demo will be desynched from reality.
The aforementioned issue was fixed in https://github.com/AttorneyOnline/AO2-Client/pull/496 however 2.9.0 still has incorrect demo recording.
Fix potential memory leak by not flushing and closing the demo file after opening it for reading.

* backup broken demo file before fixing it

* comments ahoy

Co-authored-by: in1tiate <radwoodward@vikings.grayson.edu>
2021-04-23 01:55:04 -05:00
in1tiate
9359ed7f54 make sure we save the shownames even when theyre disabled 2021-04-23 00:30:50 -05:00
in1tiate
43340e8869 move timer reset to its own method 2021-04-22 23:46:55 -05:00
Crystalwarrior
2c259a6337 Do the same as previous commit for the get_asset_paths func - only check for the direct file path before missingno 2021-04-22 19:11:39 +03:00
Crystalwarrior
d3e5cb933c Charlayer - only check for direct path after the previous checks fail but before missingno 2021-04-22 19:09:44 +03:00
Crystalwarrior
d2c0c4fa0d Fix charlayer regression not allowing us to *directly* refer to an emote we want to use with a file path (base/misc/blank for example)
Actually use the helper funcs for searching images instead of reimplementing the same thing
2021-04-22 19:02:07 +03:00
oldmud0
3e4de5da62
Merge pull request #531 from AttorneyOnline/fix/broken-demos
Fix demo playback max_wait -1 incorrect behavior when non-IC is processed
2021-04-21 01:04:45 -05:00
Crystalwarrior
fb4a5e0656
Fix log_chatmessage referring to the global m_chatmessage instead of the local variables that should be sent to it at the point of the func being called. (#530) 2021-04-21 02:54:08 +03:00
Crystalwarrior
7b058d1401 Fix last line in the .demo file not being processed
Fix timings for OOC being really busted if max_wait is -1 (dunno at which point this bug was introduced)
2021-04-21 02:14:49 +03:00
Crystalwarrior
86b342badc Reset timers, evidence list and background whenever /load or /reload is used 2021-04-20 15:08:24 +03:00
oldmud0
d0ef4831de
Merge pull request #504 from AttorneyOnline/fix/css-lag
Fix character select screen lag/performance overhead
2021-04-20 00:20:54 -05:00
oldmud0
56ca90d322
Merge pull request #529 from AttorneyOnline/crystalwarrior/coolchat-plus
Narrator IC chat support
2021-04-20 00:19:51 -05:00
Crystalwarrior
81c0f9a569
Better logs with OOC logging, [IC] and [OOC] tags (#519)
* Add OOC logging to the .log files, making them infinitely more precious to GMs especially of ambitious multi-area RPs
Add [IC] and [OOC] tags to distinguish between the types of msg

* minor wording change for .log top line to make it clearer that it's the server address and not the user address

Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-04-20 00:13:56 -05:00
oldmud0
31073d090f
Merge pull request #528 from AttorneyOnline/crystalwarrior/coolchat
Tons of bug fixes for IC chat parsing
2021-04-20 00:11:50 -05:00
oldmud0
445d47c5b5
Merge pull request #527 from AttorneyOnline/fix/523
Fix ~~, ~> and <> breaking tick pos
2021-04-20 00:05:41 -05:00
in1tiate
e517a365d5
don't set a mask on elements affected by offsets (#524) 2021-04-20 03:27:25 +03:00
Crystalwarrior
a1abe8abfa Fix blankposting when narrating not hiding the chatbox
Fix using objections against talking players not causing them to stop talking (with this method, they will only finish their current animation cycle unitl freezing in place)
2021-04-20 02:50:42 +03:00
Crystalwarrior
1edb5d9ae1 Add support for narrator chat (??!!) which does not affect the state of IC in any way, rather the only thing it affects is the IC chat box. INSANELY useful for GMs to play sound effects, talk over the situation, etc. without causing the IC viewport to reset.
Stress-tested with preanims, non-interrupting preanims, idle chat, talking chat, evidence presenting
2021-04-20 02:38:42 +03:00
Crystalwarrior
e36ac916a9 Fix anim_state deciding whether you're allowed to send a message or not (the only thing that should decide that is if text is done processing or not)
Fix objections forcing a missingno to appear when you object to someone mid-preanim, and their preanim ends before objection shout finishes. This also resolves a crapton of other bugs related to preanim_done() signal.
Move evidence display from handle_ic_speaking to start_chat_ticking (makes more sense over here)
Remove a misplaced set_static_duration for ui_vp_player_char (must've got here over a strange merge conflict or smth)
Remove useless anim_state and text_state setters in reload_theme func, the func that calls the BG to display already handles everything needed for IC reset
2021-04-20 02:36:15 +03:00
Crystalwarrior
9a20143e22 Fix ~~, ~> and <> breaking tick pos 2021-04-20 00:24:14 +03:00
in1tiate
8f0913d30e
euthanize morton (#522) 2021-04-19 23:18:39 +03:00
Crystalwarrior
97ea1a6ad4 Fix potential memory leak due to QMovie not being parented to anything 2021-04-19 23:11:17 +03:00
Crystalwarrior
79d1abb48e Add a /reload command that quickly reloads the current demo 2021-04-19 23:08:20 +03:00
in1tiate
9b8945f21a
Fix character-specific color list not being properly regenerated on a theme reload (#525) 2021-04-19 00:45:11 -05:00
in1tiate
a5e1cc4173
Fix CASEA failing to validate packets with exactly six arguments (#521) 2021-04-16 00:42:43 -05:00
in1tiate
33cf6dea26
Send "CC" packet when selecting "Spectator" from the character selection screen (#511)
If n_char is -1, don't wait for a server response.
2021-04-11 15:36:32 -05:00
Crystalwarrior
d5c1273518 Fix demos incorrectly saving the packets (breaking encoding for things such as evidence by recording <and> instead of &)
ACTUALLY fix encoding errors, stop supporting the absolutely bonkers <and> exceptions just to support the previous bug instead of fixing the root issue
2021-04-07 15:25:18 +03:00
Crystalwarrior
132bf9b9d9 Don't generate QMovie() at all if we're told we're a static AOImage 2021-04-07 02:09:41 +03:00
in1tiate
c82dc8dec7
move code outside if/else block (#518) 2021-04-03 23:27:46 +03:00
oldmud0
350120d1b4
Merge pull request #516 from AttorneyOnline/elide-left
Set Qt::ElideLeft for dropdowns
2021-03-31 20:55:16 -05:00
in1tiate
ac82b83517 set Qt::ElideLeft for dropdowns 2021-03-31 05:11:48 -05:00
oldmud0
2a1905d009
Trivial bounds check fix 2021-03-30 22:48:10 -05:00
oldmud0
8ee7acb0c0
Merge pull request #514 from AttorneyOnline/fix/demoserver
Fix demo server not being added if serverlist.txt is missing, add translation support to demo server messages
2021-03-30 22:44:04 -05:00
in1tiate
9707753777
Update src/demoserver.cpp
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-03-30 22:10:29 -05:00
oldmud0
8dd7b4fa3c
Merge pull request #513 from AttorneyOnline/fix/chat-arrow-display
Fix chat arrow being displayed even when blankposting
2021-03-30 21:49:21 -05:00
in1tiate
b15e669bee add translation support to demo server messages 2021-03-30 11:00:25 -05:00
in1tiate
6b267e8fdc fix demo server not being added if serverlist.txt is absent 2021-03-30 11:00:13 -05:00
in1tiate
1d83fae23d fix chat arrow being loaded when it doesnt need to be 2021-03-30 06:59:35 -05:00
in1tiate
73395f057b
use a string and not a boolean (stupid) 2021-03-30 05:49:28 -05:00
in1tiate
05ff6b08a2 add exception for LE packets in demos, which encode ampersand separators 2021-03-28 23:11:54 -05:00
in1tiate
4140a3339a fix packets containing unencoded newlines being incorrectly split into multiple entries 2021-03-28 23:11:22 -05:00
oldmud0
7583c57442
Merge pull request #506 from AttorneyOnline/fix/song-parents
Fix a crash when shuffling songlists that have songs with no parent category
2021-03-28 18:55:14 -05:00
in1tiate
3f651d069d add songs with no parent to clist 2021-03-27 23:01:35 -05:00
Crystalwarrior
885c510e3c Merge branch 'master' into fix/css-lag 2021-03-25 23:44:46 +03:00
Crystalwarrior
48093c3f2b Remove useless code for extra ui_selector that is not used 2021-03-24 23:05:46 +03:00
Crystalwarrior
37de947a3d Mark ui_selector, ui_passworded, ui_taken for evidence and character select as static-only due to massice performance overhead for no substantial benefit 2021-03-24 23:05:09 +03:00
Crystalwarrior
d4c0b7a740 Fix desynchronized logs options checkbox not loading properly (is still properly saved tho) 2021-03-24 21:31:29 +03:00
Salanto
298422d453 Update courtroom.cpp to apply change requests 2021-03-22 20:45:10 +01:00
oldmud0
e9eba9b5ab
Merge pull request #503 from AttorneyOnline/fix/skip-queue
Fix chat queue being cleared with no way to see what the msgs were
2021-03-21 22:42:18 -05:00
Crystalwarrior
ba36356a88 Fix log_chatmessage being called for the same message like 24 or more times causing insane spam
Reduce needless copy-pasting for shit that doesn't even need to be there
I actually made this fix but I stashed the older version when splitting the branches so you got the bugged verison instead.
2021-03-22 03:38:51 +03:00
Crystalwarrior
702b275898 Fix chat messages being lost to the Ether if instant objection was used, or you switched an area during queue being parsed. (Your IC logs will be caught up to speed instead) 2021-03-22 02:10:06 +03:00
Crystalwarrior
106d9f3097 Fix blankposting forcing the message queue to sleep up until another message is received 2021-03-22 01:59:21 +03:00
Salanto
2c5da36992 Apply suggested changes 2021-03-21 21:17:52 +01:00
Salanto
a7b208b92d small refactor handle_music 2021-03-21 04:59:15 +01:00
in1tiate
bddf6c67c2
Don't decode LE contents until after splitting by "&" (#500)
Should fix evidence, again.
2021-03-20 22:39:15 -05:00
Crystalwarrior
510c0f4b17
Add timer packets to demo playback (#494)
When the demo skips by some number of seconds, the timer will also skip forward by that duration.

Co-authored-by: in1tiate <32779090+in1tiate@users.noreply.github.com>
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-03-20 21:12:44 -05:00
Crystalwarrior
e3ba27c47e
Deprecate demo playback /min_wait (#498) 2021-03-20 13:41:35 -05:00
oldmud0
4bfd9f0d14
Merge pull request #497 from AttorneyOnline/fix/demos-evidence
Make demo files record evidence packets
2021-03-20 12:48:24 -05:00
oldmud0
8ba03150f6
Merge pull request #496 from AttorneyOnline/fix/demos-fix
Fix demos being recorded with incorrect timing. ⚠HUGE, VERY IMPORTANT FIX⚠
2021-03-20 12:47:38 -05:00
Crystalwarrior
f4cecc98af Make demo files record evidence packets 2021-03-20 20:36:06 +03:00
Crystalwarrior
f113396ad3 ⚠HUGE, VERY IMPORTANT FIX⚠
Fix demo playback being incorrectly timed due to the misplaced order of the wait#% packet (it should go BEFORE the appended message, not AFTER! We're delaying the message we're *writing*, not the *next message*!!!)

(cherry picked from commit 8319ebffe4c22c59c33d9c90161036d9c1ddddd5)
2021-03-20 20:30:12 +03:00
Crystalwarrior
118ff5c804 Fix demo playback not using UTF-8 codec, making it impossible to use for Russian chars and other special chars like emoji etc.
(cherry picked from commit f3e96ca6b38a5e069d98f2db4b17dfb7bb3f239b)
2021-03-20 20:29:17 +03:00
in1tiate
e4483719d4
Deprecate hardcoded string-based authentication, add AUTH packet (#489)
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-03-15 17:56:42 -05:00
in1tiate
3cac877378
Fix evidence icons not appearing after evidence has been presented once (#491)
all around me are familiar faces, worn out places, worn out faces
2021-03-14 19:35:30 -05:00
oldmud0
2cbb5c95ef
Fix timer using 32-bit ints instead of 64-bit ints (#487) 2021-03-07 00:01:54 +03:00
Crystalwarrior
016ce3ac40 Fix a segfault/crash due to invalid packet size checking for the timer (TI) packet 2021-03-04 14:03:37 +03:00
oldmud0
7d20de77d2 Fix files not being written as UTF-8 2021-03-03 16:23:06 -06:00
stonedDiscord
6e28bee92a
Hide ARUP fields when empty (#479)
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-03-02 10:02:03 -06:00
Crystalwarrior
1bb93cb7c0 Fix wrong pos being picked/displayed (most likely wit) if current_side is blank (a.k.a. use character default side) 2021-02-28 21:23:26 +03:00
Crystalwarrior
113529450d Stop parenting qMesageBoxes to the courtroom (fixes stylesheet conflicts) 2021-02-28 21:04:47 +03:00
Crystalwarrior
71ceb758b9 Fix stickers settings option not being saved 2021-02-28 21:03:02 +03:00
Crystalwarrior
989234cf46 set default .css behavior to match established convention 2021-02-26 23:40:24 +03:00
oldmud0
a64241a0f0
Merge pull request #473 from AttorneyOnline/fix/everything
Fix change character lag, bg resizing and repos weirdness, inconsistent behavior, sticker setting etc.
2021-02-24 10:26:56 -06:00
Crystalwarrior
5ac95ada56 Make "stop music on objection" work in tandem with the server by calling "music_stop()" instead of only working on the client-side 2021-02-24 16:02:07 +03:00
oldmud0
7579457e89 Avoid use of QImageReader copy constructor 2021-02-22 14:31:23 -06:00
oldmud0
f1eb91a612
Load fonts located in base/fonts (#475)
This will register any font (OTF/TTF) located in the base/fonts folder
recursively. They can be used for any purpose, without needing to
install them on the system.
2021-02-22 23:22:46 +03:00
oldmud0
d32ad43665 Fix crash caused by pre-2.6 IC packet 2021-02-22 12:54:06 -06:00
Crystalwarrior
679dcca079 Remove hardcoded stylesheets from lobby
Stop doing the "tagget stylesheets" monstrosity
2021-02-21 16:18:45 +03:00
Crystalwarrior
354fbd239c Stop hardcoding stylesheets so the behavior is more consistent finally (and courtorom_stylesheets.css is more useful) 2021-02-21 16:07:12 +03:00
Crystalwarrior
37011fc22d Remove background-color stylesheet from the set_qfont (allowing stylesheets to properly initialize custom backgrounds for labels w/ transparent ones)
rename "set_dropdown_ to "set_stylesheet" cuz that's what it is
2021-02-21 15:50:34 +03:00
Crystalwarrior
ee918a4f81 Fix edge cases where screenshake uses wrong chatbox coordinates due to it being initialized later than needed. 2021-02-21 12:03:56 +03:00
Crystalwarrior
d6ebc3e80b Fix chat arrow being frozen on frame 1 2021-02-21 11:38:04 +03:00
in1tiate
0ee6888dec prevent static preanims from playing 2021-02-20 04:30:09 -06:00
in1tiate
f1aa57b125 fix speedlines never being unhidden 2021-02-20 04:10:35 -06:00
Crystalwarrior
aa790dbc4b Overhaul pos dropdown and pos remove system to work well with custom pos, char pos etc.
Remove accidental duplicate code
Fix some genius using & instead of && (SMH)
Block pos_dropdown signals better
2021-02-19 11:20:38 +03:00
Crystalwarrior
ec6d657f31 rename wtce lookups to _bubble (themes need to be updated for this) 2021-02-17 15:55:33 +03:00
Crystalwarrior
7246965e00 Adopt better method for setting custom pos using the pos dropdown
Make it actually work properly
2021-02-17 15:47:54 +03:00
Crystalwarrior
f881df2415 Make the server list display all pretty and nice
Resize the 0thcolumn to smallest possible size so it's not intrusive
Remove text eliding so numbers don't get ...'s
2021-02-17 15:29:18 +03:00
Crystalwarrior
b5f581eb5b Revert bad "fix" of the sound names for WTCE courtroom_sounds.ini
Make pos dropdown ui editable for a custom pos
Keep track of the custom pos index
On switching from the custom pos, remove the entry at that index
Fix regression causing the "sort by name" lobby server list header disappearing
Expose column 0 for the # in the lobby server list header
("too ugly" just use lobby_stylesheets.css and pretty it up)
2021-02-17 15:15:40 +03:00
Crystalwarrior
63128fea13 Stop supporting the DRO way (we will make a .bat file or utility that does it for you automatically instead!)
Add an option to enable/disable stickers
Make stickers actually respect the custom chatbox setting properly
2021-02-16 11:20:54 +03:00
Crystalwarrior
5063880530 Patch a segfault by play_frame_effect being wacky
Split behavior for courtroom resizing into its own function
Use that function to optimize character changing screen
Fix reload theme breaking the background positioning
Fix changing character breaking the background positioning
Fix excessive set_widgets() calls that caused unnecessary lag
Fix unnecessary set_size_and_pos calls that didn't need to be there
Only call size_and_pos on the chatbox in the initialize_chatbox func
Remove checks for a boolean that will always be true
Simplify two functions that copy-paste code called set_size_and_pos into a single one
Fix "disable custom chat" setting not being used when setting chat sizes and pos
2021-02-16 11:04:07 +03:00
in1tiate
9359ae2909 fix testimony indicator not reappearing 2021-02-14 19:24:26 -06:00
in1tiate
68851a16aa fix objection prematurely adjusting chatbox 2021-02-14 19:22:05 -06:00
in1tiate
97cb8cf192 fix bg not resizing on reload theme 2021-02-14 19:21:49 -06:00
in1tiate
36a1e26069 fix borked chatbox themes 2021-02-13 07:48:42 -06:00
in1tiate
8163071d90 if its the same file, dont interrupt playback 2021-02-13 07:36:57 -06:00
Crystalwarrior
fe00c6b7de
Animated Themes. Subthemes. Custom default_theme. Overhaul asset paths. Fix a ton of asset resolution bugs. (#466)
* Remove get_static_image_suffix (webp, gif etc. can be non-animated)
Replace QList<QString> with QStringList

* forgot to remove static image from aoimage

* Simplify get_theme_path, get_custom_theme_path and get_default_theme_path all into a single get_theme_path func
Add a default_theme variable which defines the currently recognized default theme
Add a new "get_asset_path" that will be used to simplify asset resolution considerably

* Simplify AOImage set_image function to use get_asset_path
Begin working on the subtheme system

* Add p_default_theme for get_asset_path
Implement get_asset_path for AOButton

* Condense aolayer path lookups into the get_asset_path function

* Get rid of get_font_name due to underuse (and it just does the same thing as get_design_element anyway)
Get rid of get_char_shouts (use chat= instead)
Use get_subtheme() instead of subtheme (because get_subtheme() can perform overrides based on the user's settings)
Make get_color() use get_asset_path()
Make get_design_element() use get_asset_path()

* Adapt a whole bunch of text_file_functions to the get_asset_path method, fixing an enormous amount of invalid path resolutions
Unfortunately I have to keep backwards compatibility for the backwards ass config.ini method for the chat markup (new way is chat_config.ini)
Get rid of get_theme_effects and implement the stacking behavior into get_effects instead

* Program doesn't run, color lists stop generating for some reason
Also implement safety checks for the asset path generator

* Fix a really tricky issue that popped up regarding char_color_rgb_list not being generated, causing segfaults

* Address the sfx player path resolution being really, really stupid and resolve major inconsistencies (such as the bug where objection sfx wouldn't be playing despite the default theme or default misc folder having them)

* Fix sfx path resolution being funky (apparently D:/Qt/Projects/AO2-Client/bin/base/themes/default//objection.wav is a valid qt5 path...)

* Implement:
get_asset_paths - Return an untested list of universal paths from the provided args
get_asset_path - Loop through the list of provided asset paths and return the first valid file
get_image_path - Loop through the list of provided asset paths, apply get_image_suffix and return the first valid image file
get_sfx_path - Loop through the list of provided asset paths, apply get_sfx_suffix and return the first valid sound file
get_asset - return an asset (must contain file extension) from the get_asset_path() applied on the get_asset_paths()
get_image - return an image with get_image_suffix() applied on the get_image_path() for the get_asset_paths()
get_sfx - return a sfx from provided args with the uniquely constructed asset path list for sounds

Rename old get_sfx to get_court_sfx for better clarity of its function
This replaces previous asset stuff I implemented, as I think this is a better solution lol

* Add a new get_config_value that obtains a value from the config that matches identifier
Adjust all calls to get_asset() to actually look for a config identifier value instead, so even if a config.ini is found if it doesn't contain the identifier we want we keep looking

* Fix effects.ini sounds not working
Remove debug text

* Make it so even if you miss the required asset, and don't have a missingno, the viewport still doesn't freeze up due to waiting on Objections etc. due to signals.

* Implement default_theme option for courtroom_design.ini, allowing you to make themes that inherit from other themes that are not default.

* move sounds folder lower in sfx pathlist

* fix realization sfx not being fetched from config

* Make aosfxplayer actually use get_sfx I made
Move sounds folder path check last in get_sfx

* I thought this would fix QSettings::value: Empty key passed but I guess not, that annoying error will keep pestering us :(((

* Remove silly .png exception for SplashLayer
Fix static image Objections freezing the viewport due to done(); signal that never arrives

* Make WTCE cooler by including a stop method for witness testimony indicator, and add support for custom WTCE

* Reduce code duplication for get_sfx

* Fix the program hanging/entering an infinite loop/segfaults/a number of nasty issues due to done(); signal being sent as soon as playback begins if the image is invalid.
This is done by removing the file_exists check, and letting the rest of the functionality handle this case - the system is robust enough and treats an invalid image as a static image.

* Fix segfaults with AOLayers by sanity checking using max_frames
Fix "Pixmap is null" console spam

* You'll hate me for this.
Make it possible to have fully animated AOButton and AOImage

* Add a settings option to toggle animated themes on or off

* Add a setting for animated theme elements
Add a "static image" toggle for get_image_suffix

* Fix custom chat and generally the chat boxes not having consistent behaivor with subthemes
Add a settings option for subthemes
Have AOImage keep track of its last valid path

* Add SubTheme (ST) packet. Pass subtheme as arg0, and "1" if you want the client's theme to be reloaded.
ST packet sets ao_app->subtheme no matter what. It will not reload theme unless the user has their subtheme set to "server".
Fix showname widths by rearranging font metrics to do its calculations *after* the showname font is set, and not before (making it lag behind the correct display size by 1 msg)

Co-authored-by: in1tiate <radwoodward@vikings.grayson.edu>
2021-02-13 11:52:12 +03:00
Crystalwarrior
b78479f4cc
Update the Settings screen - reload theme, restore defaults (#463)
* Add a Reload Theme button to the settings screen (works with both lobby and courtroom)

* Move all value updates on elements to "update_values" func in the settings screen
Add a "restore to defaults" option that allows you to restore all the configuration to its default values.
Set up a .temp settings file that allows you to undo the effects of restoring default options.

* wtf why didn't this error
2021-02-11 19:53:47 +03:00
Crystalwarrior
3ac6b337a1
Fix charselect elements not affected by theme reloading (#465) 2021-02-11 15:50:19 +03:00
Crystalwarrior
90190f5a80
Fix https://github.com/AttorneyOnline/AO2-Client/issues/425 (#464) 2021-02-11 15:50:08 +03:00
in1tiate
84280b7053
remove fucky wucky (#462) 2021-02-11 14:42:47 +03:00
Crystalwarrior
940b04adb1
aolayer Debug text bamboozled (#461)
Set focus to chat on pos remove click
2021-02-11 14:42:37 +03:00
in1tiate
ff7c45cfc2 add workaround for emotes crash 2021-02-09 23:46:59 -06:00
in1tiate
e6ced65922
Fix expanded_desk_mods (2-5) being nonfunctional (#451)
Also fix backgrounds appearing off to the left if they are less wide than the viewport.
i am in agony

Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-02-09 14:57:29 -06:00
in1tiate
8162783e8b
Fix blankposts never appearing in the IC log (#449)
* remove broken blankpost check

* Revert "remove broken blankpost check"

This reverts commit 9f3013b9f5d9c1f859e7e6bb42bed0be3eb15cfb.

* restore functionality
2021-02-09 04:21:17 +03:00
Crystalwarrior
aea0e2ef80 Fix backwards compatibility with the stopmusic
Hide ~stop.mp3 and the stop category
Add an option to make it so when you double-click a category, it expands/collapses it without sending the stop-music command
Make right click stop music backwards compatible
2021-02-09 03:00:51 +03:00
in1tiate
e5eeef1b0f remove extraneous additive appendation 2021-02-04 17:59:33 -06:00
oldmud0
097220f11a
Merge pull request #368 from skyedeving/add-tests
Add a CMakeLists, tests, and pipeline to automatically test with Github actions
2021-01-29 12:17:54 -06:00
in1tiate
5cafb011f5
Fix music_display not stretching properly, reconsolidate ForegroundLayer into InterjectionLayer, rename InterjectionLayer to SplashLayer (#436)
* more intelligent separation

* separation 2 electric boogaloo

* rename InterjectionLayer to SplashLayer

* remove redundant layer type

* comments and cleanup

* fix incorrect use of continuous

* remove nonfunctional check

* fix additive not coloring correctly

Co-authored-by: Crystalwarrior <varsash@gmail.com>
2021-01-29 20:41:53 +03:00
Crystalwarrior
9628ba6b07
fix looping effects not looping (#444)
tested by @in1tiate and said to be working
2021-01-29 15:09:35 +03:00
in1tiate
639d4738db
Improvements to the way the position dropdown is handled (#428)
* it works

* woops

* oops 2 electric boogaloo

* fix "SP" packet not working properly
2021-01-28 22:38:15 +01:00
in1tiate
3683e54501
more elegantly handle streaming urls (#443) 2021-01-28 22:35:50 +01:00
Skye Deving
2d33a52c82 Update the cmakelists to newest 2021-01-28 11:05:42 -06:00
Skye Deving
640f12b3c7 Use target_sources 2021-01-28 11:05:42 -06:00
oldmud0
9c6e703bfc
Merge pull request #432 from AttorneyOnline/revert-416-fix/ghost-music-fade
Fix music fading being completely broken
2021-01-27 18:11:26 -06:00
oldmud0
580313cbcd
Merge pull request #429 from AttorneyOnline/fix/continuous-bg
Fix continuous playback being nonfunctional on non-CharLayer elements, and allow users to toggle the feature
2021-01-27 18:10:52 -06:00
oldmud0
6de2105f2f
Merge pull request #438 from AttorneyOnline/feature/textspeed
Text crawl setting
2021-01-27 18:08:46 -06:00
Crystalwarrior
0041352b18
Update src/aomusicplayer.cpp
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-01-27 20:20:26 +03:00
Crystalwarrior
d1e7b2920b Refactor "text scrawl" to "text crawl" (sounds more simple to understand than scrawl tbh) 2021-01-27 20:05:06 +03:00
Crystalwarrior
9ebc0f9b54 Initialize blip_rate and blank_blip before the text message chat_tick is called instead of when reload_theme is pressed (more intuitive application of the settings) 2021-01-27 20:01:50 +03:00
Crystalwarrior
615901c435 Fix options dialog squishing and being annoying when we add more settings
Fix resizing the options dialog causing the save/cancel buttons to take up half the dialog box
Add suffixes to all gameplay tab spinboxes
Make size policy less suck
2021-01-27 20:00:44 +03:00
Crystalwarrior
1a3f500034 Update text scrawl tooltip info and spinbox suffix 2021-01-27 19:58:29 +03:00
Crystalwarrior
423fe3d3fe Add the setting for the text scrawl 2021-01-27 19:18:43 +03:00
Crystalwarrior
88cdf3c376 Fix a thing not being removed 2021-01-27 18:33:25 +03:00
Crystalwarrior
b040449f7f Redesign the text display speed delay to be more modular by introducing a "base display speed" variable 2021-01-27 18:20:56 +03:00
oldmud0
e3f11ebed3
Merge pull request #435 from AttorneyOnline/fix/css-resize
Call set_widgets() every time we select a character to prevent erroneously displaying courtroom with char_select's window size
2021-01-24 23:08:22 -06:00
Skye Deving
5d9309b1b3
Handle packet decoding separately for SC packet (#433)
Should fix special (escaped) characters not being parsed correctly in character list.
2021-01-24 18:26:39 -06:00
in1tiate
1aa9cef44c add set_widgets call to css 2021-01-24 09:09:37 -06:00
Crystalwarrior
b394eb84fa Revert "fix music fading being audible when volume is 0 (#416)"
This reverts commit 75c1df5312.
2021-01-24 04:25:42 +03:00
in1tiate
9624af5412 fix continuous and make it configurable 2021-01-23 12:53:47 -06:00
in1tiate
c13e6b7ab0
Allow effects to decide whether they go over or under the chatbox (#424)
Also re-adds pair ordering following viewport refactor.
2021-01-22 22:43:01 -06:00
in1tiate
a0d0546c66 add some tooltip exceptions 2021-01-20 03:23:45 -06:00
oldmud0
0bb8574d79
Merge pull request #420 from AttorneyOnline/version-bump
Version bump
2021-01-19 10:15:54 -06:00
Crystalwarrior
1b016ddf91 Merge branch 'master' into feature/timerclock
# Conflicts:
#	include/courtroom.h
2021-01-19 16:04:58 +03:00
Crystalwarrior
0926f3c158
Implement sticker logic with animated image support (#414)
* Implement sticker logic with animated image support (will probably be remade in a much better way for AOLayers)

* port to aolayer

Co-authored-by: in1tiate <radwoodward@vikings.grayson.edu>
2021-01-19 16:02:28 +03:00
in1tiate
8c60fb2fcd
add MatchRecursive flag (#418) 2021-01-19 16:02:03 +03:00
in1tiate
894b2b2a0e
Consolidate AOScene, AOMovie, and AOCharMovie into one class, add support for (c) animations, implement emote continuity, add scaling overrides to all layer types, allow for stretch-to-fill images, allow for additional effect configuration (#302)
* Rewrite AOScene and remove the need for AOMovie and AOCharMovie by consolidation

* Rename AOScene to AOLayer, apply suggestions to improve functionality

* Implement suggested change to allocation

* Switch from pointer to field, fix ui_vp_player_char not resetting play_once

* Use the variable gif_name instead of the string "gif_name"
 Oops.

* Total rewrite of AOLayer (again)

* Add support for (c) animations, do some housekeeping

* allow themes to override misc chatboxes

* add support for pulling InterfaceLayer elements from theme/misc

* mistakes were made

* move all frame fx functionality to CharLayer subclass

* virtual functions are cool mkay

* remove evidence of my incompetence

* allow themes to override font design inis under theme/misc

* Proper support for theme/misc chatbox, fixes

* Fix chatbox dimensions not updating and inline color causing missingnos

* rename chat markdown to chat markup

* add missing misc overrides

* quick hotfix for chatblank and misc overrides

* Fix oversight with backgrounds causing them to be culled

* Same as last commit but for FG layer

* amend comment to explain impossible shenanigans

* Adjust ForegroundLayer to take charname rather than miscname, allow for checking in char folder

* fix an incredibly embarrassing pathing bug

* add scaling overrides for all layer types, parent orphaned viewport elements to the viewport

* stupid fix because themes use "custom.png" as a button

* switch to .append()

* Revert "Merge branch 'aoscene_rewrite' of https://github.com/AttorneyOnline/AO2-Client into aoscene_rewrite"

This reverts commit bdeb1bff7639d522031aab3c133a83b0e2a291df, reversing
changes made to 125ee63b97a6f6c156e69525d88fddc625e7a978.

* switch to .append() (again)

* move function call to fix showname length calculation error

* fix nonlooping character animations being broken Again

* unparent elements from the viewport and do fancy masking arithmetic instead

* use override keyword

* move scaling override to char.ini, allow stretching, restructure effect property loading

* fix some redundancy

* unparent chat_arrow from chatbox to prevent accidental masking

* at no point do we want a frozen gif to display

* overhaul how wtce is handled

* oops

* also let sounds be pulled from theme miscs

* i should probably compile before i push

* actually make it work

* don't check a default bg

* readd 1x1 stretch thing

* actually the 1x1 thing was a bad idea

* Add missing parenthesis

* Use load_image instead of play

play is a nonexistent method now

* Remote shout_message and usages because it does nothing

* Remove multiple redefinitions

* Add in missing brackets and indent to fix build

I have know idea what this does but it brings fear

* fix build error

* fix chat arrow and remove duped code

* remove more duped code and fix misc themes

* only update chat_arrow when needed

* consolidate log_chatmessage and display_log_chatmessage

Co-authored-by: scatterflower <marisaposs@gameboyprinter.moe>
Co-authored-by: Skye Deving <76892045+skyedeving@users.noreply.github.com>
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-01-19 14:32:11 +03:00
in1tiate
21b4aa5072
unused macro and update QTime to QElapsedTimer (#417) 2021-01-19 14:30:56 +03:00
in1tiate
75c1df5312
fix music fading being audible when volume is 0 (#416) 2021-01-19 14:26:07 +03:00
in1tiate
fa969dee4f add sanity check for empty matching list 2021-01-18 20:57:35 -06:00
in1tiate
d41ec17fe7
Add a new "char_list" QTreeWidget that allows for categorizing characters (#399)
* initial commit

* use a "category" value instead

* add filtering and taken indicator

* hide serverlist header

* set the items to disabled in place of the [X] text

Co-authored-by: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
2021-01-18 23:10:45 +03:00
in1tiate
d8dd429c20
cursed way of preserving inheritance (#413) 2021-01-18 21:37:42 +03:00
oldmud0
2f3ca8613d
Merge pull request #400 from AttorneyOnline/bugfix/blanklogs
Fix blankposts not showing up in logs
2021-01-18 12:35:19 -06:00
Crystalwarrior
7877739146 Simplify the logic behind last message = blankpost detection
I need to stop overcomplicating things.
2021-01-18 18:54:11 +03:00
Crystalwarrior
ea94644cf5 Attempt a theoretically safer method of tracking last displayed message 2021-01-18 17:56:21 +03:00
stonedDiscord
ed9ecfda47
forgot to return after destroying the connection (#412)
Co-authored-by: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
2021-01-18 17:39:35 +03:00
Crystalwarrior
5786694b53
Stack default soundlist after the character soundlist instead of making the character soundlist overwrite the default (#411) 2021-01-18 15:39:13 +01:00
Crystalwarrior
c42496e204
Make chat rate limit configurable (#398)
Co-authored-by: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
2021-01-14 15:45:30 -06:00
Crystalwarrior
147892bae9
Overhaul sound lists to introduce aliases, rethink editing behavior (#389)
* Resolve https://github.com/AttorneyOnline/AO2-Client/issues/275 by adding a "Nothing" option to play no SFX even when playing a preanimation that behaves similar to the Default option

* Overhaul sound list:
* Allow aliases. .ini file syntax is "filename = alias".
* Do not allow editing the .ini files from the client anymore.
* The sound list dropdown is still editable, but all it does is play your custom sfx without adding it to any files.
* Overhaul get_char_sfx

* Fix aliases not working properly with a rather tricky solution

* save character soundlist in base and drop the character_ from the filename

Co-authored-by: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
2021-01-13 23:34:20 +01:00
Crystalwarrior
2f84055af9
[2.8.6] Demo Recording/Playback (#337)
* initial commit with horrible code dupcliation haha lol
Set up elapsedtimer to generate wait# stuff between packets recorded

* implement groundwork for internal demo server

* add core playback functionality

* make it work kinda by including SC packet in demo

* Add a file dialog for loading a demo file instead of a hardcoded path

* Change /play to > in OOC to begin playback or skip to next element
Pop up file dialog box *before* establishing the connection, not after.
TODO:
* Fix having to load the same file *twice* to be able to connect to the demo server for some reason
* Fix the segfault caused by calling the playback() function when there's no remaining data, it's almost like demo_data.isEmpty() is ignored for whatever reason???

* Clear demo data when loading a demo file to prevent stacking demos

* Properly disconnect the client when sending the request for file browser fails to obtain a good demo file

* Fix append_to_file newlining even if file didn't exist prior to calling this function

* Add a very scuffed exception to not log or demo record anything that happens in the Demo playback local server

* Reduce invalid file spam by checking for non-logging server better
Use file_exists() to be more consistent in append_to_file

* Fix the client crashing when receiving loading packets etc. at runtime such as SC, SM, CI etc. (TODO: parity???)
Remove useless debug stuff

* Preserve newlines for demo packets such as "CT", "MS" etc.

* Implement /max_wait, /min_wait for adjusting the maximum and minimum wait in milliseconds between wait packets
Add /pause or | shorthand to pause playback
Re-add /play and keep > as a shorthand
Remove clientside restrictions from sending empty OOC messages and sending OOC messages without a name - these should be serverside.

* Empty music list
Default the character to Spectator char no matter the selection in CSS

* Allow -1 character ID or character ID that does not fit into the local Character Select Screen list to still be parsed corectly, using the character folder in the MS packet as reference.
Allow servers with no selectable characters to still be properly loaded
Bypass the Character Select Screen when joining a server with no character select screen and automatically become a spectator

* Properly handle demo files without SC packet to dictate which chars exist
Add a /load command letting you load a demo file without rejoining the demo server (the CS packet will not be properly handled but I cannot think of a single tangible problem this causes lol)
Make sure all DEMO CT messages are colored properly

* Fix logs bleeding into each other if you disabled logging or you joined a demo server after leaving another

* Prevent logging even if log_filename is defined because a user might disable auto logging when running the game

* Fix custom shownames not appearing in the IC logs

* Set up new logic for max_wait, meaning that dead air being skipped is prioritized with MS (IC chat) packets being used as the anchor.

* Better logic for min_wait to only affect important packets (IC Chat)

* Fix encoding not being performed on packets that are saved to the .demo file, resulting in characters having something like "#1" in their message breaking that specific message

* Fix a weird setup in courtroom.cpp that happened out of the merge and bugged the code
Fix aopacket being busted up as well

* add missing feature flags to the demoserver

* use random port

* move writing to the demo file to a function

* only listen on localhost

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

* remove copypasta

* add a help to the demo server

* fix empty demo disconnecting the server

* tell the user how to begin

Co-authored-by: scatterflower <marisaposs@gameboyprinter.moe>
Co-authored-by: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
Co-authored-by: stonedDiscord <stoned@derpymail.org>
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-01-13 22:25:24 +01:00
stonedDiscord
dda459ceaa
behaivor (#404)
Co-authored-by: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
2021-01-13 22:23:31 +01:00
Crystalwarrior
96fcb75c4c Make sure blankposts are properly displayed unless repeats, playing nice with view desync 2021-01-12 13:46:39 +03:00
in1tiate
74a1b38949
Allow user themes to customize ui_music_list's indentation and animation (#395)
* add music list indent property

* add "animated" property to musiclist

* switch from qstring to int
2021-01-12 12:41:03 +03:00
Crystalwarrior
07993a621b Better place to check invalid ID's 2021-01-12 12:02:07 +03:00
Crystalwarrior
49c3dcdee5 Merge branch 'master' into feature/timerclock
# Conflicts:
#	include/courtroom.h
2021-01-12 11:55:08 +03:00
Crystalwarrior
2d1de1fb54
Desynchronize viewport from the IC chat log so that users have a smooth viewing experience as an option (#385)
* Begin trying to understand handle_chatmessage monstrosity
Rearrange some functionality to be more consistent with what the particular handle_chatmessage is *supposed* to be responsible for
Single responsibility principle doesn't apply not just to script files but even functions in this goddamned program apparently.

* Fix some oversights relating to "has presented evidence" logs

* Fix an edge case crash with negative evidence, idk why this didn't happen before.

* Completely refactor handle_chatmessage hell and split it up into single-responsibility-principle functions like a sane and organized coder would.
This will break any PRs that touch handle_chatmessage and will have to conform to the new standard, but it's very good in the long run.
Functions have also been meticulously commentated to make sure that everyone can understand at a glance what everything does.
This refactor is done to pave way for smooth viewport, making characters no longer randomly interrupt each other when speaking.

* Rename confusingly named "handle_chatbox" to "handle_ic_speaking"
Add a new function "handle_callwords"

* Parse blankposts in the packet unpacking phase
log_chatmessage is now an argument-based funciton instead of using m_chatmessage monstrosity
Commentate the heck out of log_chatmessage
Fix showname displaying logic being bonkers for log entries
Fix -1 char_id most likely crashing client, even tho they're supposed to be system messages
Fix [CHARID] being referenced instead of [OTHER_CHARID] in the pair display func
Fix chat message color being used for "has played a song" even though it shouldn't

* Move setting emote_mod from the objection thing to the packet unpacking thing
handle_emote_mod has become argumented

* Make display_pair_character take in only vars it needs

* Add functionality for message stacks (does not handle logging separately yet)
Currently segfaults at line 1823 if stacking behavior actually occurs. Plz help I'm poopie brain at this

* Make sense of pointers and dereference some pointers to prevent wacky errors
Replace _stack with _queue, and turn it into a QQueue

* Implement a minimum text delay queue timer so that each msg must stay on screen for a specified amount of time
Chat_arrow only shows up when the minimum text delay has expired
Check if target is muted in the enqueueing, as well as the validity of the character id, so we don't even bother adding it to the queue
Add a settings option to set text stay time (minimum amount of time to pass before displaying the next message).
TODO: Handle queued interjections in a cooler way

* Adjust default option for stay_time to be 200ms
Make the stay_time setting of 0 disable the queue system entirely

* Make interjections force-clear the message queue
Use interjections to instantly process those messages - objections are usually extremely important and must have everyone's immediate attention.
TODO: Add a settings option for interjection behavior

* Clear message queue when bg display packet is received

* Add an instant objection setting which, when enabled, will interrupt and skip the message queue on objections (effectively bypassing text_delay system)

* Stop using AOPacket for the queue and use QStringList instead (packet contents, we don't care for the header)
Implement objection threshold which works in a queue if instant objections are disabled (not exposed to the settings yet)
Modify packet contents directly instead of waiting for m_chatmessage shenanigans (we should deprecate this soon)
Rename isinstant_objection_enabled options check to be more consistent

* Make it so objections display as soon as the message is over if instant_objection is disabled

* Remove emote_mod = "1" thing that had no real purpose
Implement desynchronized logs settings option, which is false by default, meaning users' messages and display IC logs are going to be in sync.
Split up display and logging behavior, meaning IC logs will be saved with accurate timings on the .logs file, while display can be slower.
Remove dumb "System" showname thing cuz it was dumb

* Bring back minimum packet size safety check

* Make sure shouts are properly logged. I am very sorry for this horrible amount of code duplication though.

* fix compile errors

* fix html parsing error

* Rearrange the order of logging so IC messages go like this:
* shouts go first
* evidence goes second
* chat message goes last

* Fix No Interrupt coming back, go away you foolish beast

* fix borked options dialog

* Crank down "press enter delay" from 600ms to 200ms so it's not as harsh

Co-authored-by: in1tiate <radwoodward@vikings.grayson.edu>
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-01-12 11:24:11 +03:00
oldmud0
425c17a42b Update credits 2021-01-11 19:02:12 -06:00
oldmud0
4c3c2ffaac Remove raidensnake from credits per request
Who knows what's up with him.
2021-01-11 18:44:11 -06:00
oldmud0
189b092117
Merge pull request #396 from skyedeving/fix-spectator-mute
Set music and objection players to volume slider in update_character
2021-01-11 12:02:07 -06:00
in1tiate
967f17a53f
Allow button generator to generate both on and off buttons (#320)
We'll see how cursed this is.
2021-01-11 12:01:09 -06:00
Crystalwarrior
98da2698a6 Screw it, let there be clock_0 2021-01-11 17:52:23 +03:00
Crystalwarrior
45c78ea5ca Add "id" variable to the clock functions and properly parse the ID
Implement scalable maximum clock count, right now it's at 5 clocks a theme can have max
Theme "clock_" starts from 1 instead of 0 since users don't know when stuff starts at index 0
TODO: testing lol
2021-01-11 17:38:08 +03:00
Skye Deving
2ee2cd8bf2 Set log filename to a more sortable format 2021-01-11 04:36:32 -06:00
Skye Deving
90bd02a3e9 Set music and objection to volume slider in update_character 2021-01-11 02:27:10 -06:00
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
057353e9f6 more comments 2021-01-09 15:19:50 -06:00
in1tiate
3a207dccf0 i barely had to modify this 2021-01-09 15:13:19 -06:00
Skye Deving
ee8c6e3df7
Remove redefinition of variable in same scope (#391) 2021-01-09 22:41:52 +03: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
in1tiate
10fb54db61
correct my widdle fucky wucky (#390) 2021-01-09 21:00:26 +03:00
Skye Deving
05dd086fff
Fix segfault in server list without a server selection (#374)
Also bumps C++ version to C++17 (C++1z).
2021-01-09 11:59:51 -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
5b09dd45d5
Populate non-default background positions from design.ini, allow 2.8-style default positions (#352)
* populate pos dropdown from design.ini

* add sane default, remove hardcode bs
2021-01-09 18:21:35 +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
7bac3c9514
only play expanded songs, music_random (#376) 2021-01-09 18:14:56 +03:00
Crystalwarrior
1da6e37e04
Resolve https://github.com/AttorneyOnline/AO2-Client/issues/275 by adding a "Nothing" option to play no SFX even when playing a preanimation that behaves similar to the Default option (#383) 2021-01-09 18:14:04 +03:00
in1tiate
fc4e707381
Move user-made iniswaps to a global configuration file and make character folder iniswap files immutable (#350)
* add default iniswap file

* switch to using base/iniswaps.ini for user iniswaps
2021-01-09 18:11:57 +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
Skye Deving
512b7a37de Adopt the orphaned msgBox's and add delete on close attribute 2021-01-07 23:32:00 -06:00
Skye Deving
df24961c0d Set delete on close attribute for orphaned widgets 2021-01-07 23:31:08 -06:00
Skye Deving
c46ab13c62 Adopt the scroll widget in the options dialog 2021-01-07 23:30:46 -06:00
Skye Deving
86fd030ef0 Adopt the poor orphaned QWidgets 2021-01-07 23:30:10 -06:00
Skye Deving
cbf8391a65
Add QMenu delete on close attributes (#381)
Fixes a minor memory leak with context menu creation.
2021-01-07 20:44:58 -06:00
Skye Deving
e2c447f1d7
Set emote format to apng if png supports animation (#379) 2021-01-07 16:21:56 -06:00
oldmud0
d308fc83de
Merge pull request #316 from AttorneyOnline/messagebox
add BB packet for a MessageBox popup
2021-01-06 12:41:52 -06:00
oldmud0
c4b739292a
Use call_error() for character load error message 2021-01-06 11:43:31 -06:00
oldmud0
6e57e170e7
Merge pull request #362 from skyedeving/fix-casedoc-loading
Encode doc contents with hash sign
2021-01-06 11:23:37 -06:00
Skye Deving
cb19f55a06 Checking for apng should be lower case 2021-01-06 00:59:22 -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
371ca313e6 Add in support for streaming music with bass 2021-01-05 12:36:17 -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
4d02cc8d68
Use QList::mid when constructing QStringList (#365)
The constructor with two iterators is too cutting edge from 5.14 to be
widely supported right now
2021-01-04 12:51:27 -06:00
stonedDiscord
714f54b9dc CI needs an extra include for bind 2021-01-04 18:05:03 +01:00
stonedDiscord
04ed1a1812 add 3 second timer before OK shows up 2021-01-04 16:44:14 +01:00
Skye Deving
a0ef2a75ef Encode doc contents with hash sign 2021-01-04 06:43:40 -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
oldmud0
9cd533cf40
Merge pull request #351 from in1tiate/in1tiate/sane-libs
Search for libraries inside a dedicated "lib" folder (and notes on distributing future releases)
2020-12-28 12:28:10 -06:00
in1tiate
38b730ce0d
add library path instead of setting it
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2020-12-28 04:37:33 -06:00
Crystalwarrior
570bad6d47
Fix blankposting not respecting character ID's in the equation (#282)
Fixes an issue where if you blankpost on top of another character's blankpost, your message won't show up on the ic log clientside.
2020-12-28 01:19:15 -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
in1tiate
b159ca35df
Fix sounds and blips being muted forever on changing character (#345)
Re-fix of #277.
2020-12-28 00:49:50 -06:00
oldmud0
8ed373597b
Merge pull request #340 from AttorneyOnline/path-traversal
Prevent path from escaping base.

Truly the end of an era.
Alexa, play ../../../../../../../../Users/Public/Music/Sample Music/Kalimba.mp3
2020-12-28 00:48:00 -06:00
in1tiate
3d4d637838 Search for plugins in "lib" directory 2020-12-12 06:54:45 -06:00
oldmud0
b155ab8488
Merge pull request #342 from AttorneyOnline/charselect-sounds
Fix #277 (sounds in charselect)
2020-11-17 15:51:33 -06:00
oldmud0
0356165d82
Fix SFX tooltip description (#343)
Fixes #290.

Co-authored-by: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
2020-11-17 15:49:10 -06:00
stonedDiscord
fa083923f9 change the sfx tooltop description 2020-11-16 15:17:49 +01:00
stonedDiscord
0c382eea7d move enter courtroom to the PV packet instead of just doing it when you click a character 2020-11-16 15:13:33 +01:00
stonedDiscord
6e58b6a943 don't display the ? in the titlebar 2020-11-16 15:06:25 +01:00
stonedDiscord
548eae95f2 filter path traversal 2020-11-16 14:49:28 +01:00
stonedDiscord
10298230ce clean up path functions 2020-11-16 14:32:04 +01: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
oldmud0
fe3b16829f
Merge pull request #335 from AttorneyOnline/white_space
* set no maximize flag on lobby
* set no maximize flag on courtroom
* set no maximize flag on charselect
* stop them from dragging the charselect
* stop them from dragging the courtroom
* stop them from dragging the lobby

Co-authored-by: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
2020-11-10 08:56:45 -06:00
in1tiate
fe3224d7e8
Add vertical offset feature (#333) 2020-11-10 08:43:18 -06:00
in1tiate
1502a18593
Reformat emote_mod logic (#307)
Interjections should not force preanimation if 'Pre' is unchecked.
2020-11-09 15:05:21 -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
stonedDiscord
2dbedf5163 stop them from dragging the lobby 2020-11-05 23:27:58 +01:00
stonedDiscord
1e1ada7437 stop them from dragging the courtroom 2020-11-05 23:27:49 +01:00
stonedDiscord
0a5e5582a3 stop them from dragging the charselect 2020-11-05 23:27:43 +01:00
stonedDiscord
c1dfb4928c set no maximize flag on charselect 2020-11-05 23:17:30 +01:00
stonedDiscord
997462ad54 set no maximize flag on courtroom 2020-11-05 23:17:22 +01:00
stonedDiscord
c49ce181c9 set no maximize flag on lobby 2020-11-05 23:17:15 +01:00
scatterflower
a46c7ca8f6 reset doubleclick flag on connect 2020-11-01 13:35:57 -06:00
oldmud0
dd085c8958
Merge pull request #331 from AttorneyOnline/no-fantacrypt
Drop AO1 compatibility
2020-11-01 12:32:48 -06:00
oldmud0
93f370b062
Merge pull request #309 from AttorneyOnline/fix-272
When deciding to present evidence, check if we've already done so
2020-10-31 18:26:38 -05:00
oldmud0
e0e2898393
Merge pull request #319 from AttorneyOnline/in1tiate/music-missingno
Indicate when a song was not found to reduce confusion
2020-10-31 18:26:10 -05:00
in1tiate
f4cdb3954f Fix missing #include, run clang-format 2020-10-13 18:52:23 -05:00
in1tiate
38d5fc7586 Add proper masking to AOImage elements 2020-10-13 15:42:06 -05:00
in1tiate
5fc87a93d2
Inmplement suggested change 2020-10-09 20:17:23 -05:00
in1tiate
74c15447b5 [MISSING] should be translatable 2020-10-09 10:24:03 -05:00
in1tiate
f00801feb6 add indicator when song is not found 2020-10-09 10:22:58 -05:00
stonedDiscord
5ab50c8431 add BB packet for a MessageBox popup 2020-10-06 12:43:50 +02:00
scatterflower
f91fc5739c fix doubleclick server being buggy 2020-10-04 01:41:23 -05:00
oldmud0
849f91d991
Merge pull request #299 from AttorneyOnline/fix-283
Fix shout sounds not being initialized from the default theme when current theme lacks them
2020-09-20 09:13:24 -05:00
in1tiate
48f8d8aa27 add variable check for evidence presenting 2020-09-19 04:12:40 -05:00
oldmud0
aa6f073ea8
Merge pull request #298 from AttorneyOnline/fix-293
Fix iniswap removal button disappearing on clicking 'reload theme'
2020-09-11 22:19:53 -05: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
in1tiate
6c2010a1cf Apply suggested change to remove need for additional function 2020-09-07 14:53:17 -05:00
in1tiate
311e260d65 Add 600ms rate limit to IC signal 2020-09-07 13:38:10 -05:00
in1tiate
4562bcd82f Alter logic flow to include theme folders for shout sounds 2020-09-07 13:00:59 -05:00
in1tiate
48c7984d66 Add dropdown function to set_widgets 2020-09-07 12:40:22 -05:00
oldmud0
fe5128280c
Merge pull request #274 from AttorneyOnline/windrammer/fix-273-button-generator
Fix: Qt failing to paint a darker button if source image is indexed
2020-08-30 13:34:28 -05:00
Crystalwarrior
e2e3b28de8 Set cache mode to "all" for both QMovie objects to preserve the client's sanity by not horribly lagging them with zoom speedlines and other continuously animated elements. 2020-08-28 15:48:01 +03:00
oldmud0
090e82421d
Merge pull request #276 from Crystalwarrior/bugfix/sprite-freedom
Allow non-png static image lookups
2020-08-25 16:36:56 -05:00
Crystalwarrior
610510eb7b move "check" to the very end instead of very start in packet_distribution 2020-08-25 13:00:00 +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
Crystalwarrior
18a9bcfe19 Remove the ".png" check from the load_image lookup to allow non-(a) and (b) images being used for static characters 2020-08-24 20:22:13 +03:00
likeawindrammer
d1ac36d3c2 Fix: Qt failing to paint a darker button if source image is indexed
By converting the image to an 8-bits per channel image with alpha channel
we make sure the client won't fail painting a darker button,
and keep the transparency if the source image had.
2020-08-23 13:58:30 -06:00
oldmud0
8dcddf289f Only reinitialize audio on device change 2020-08-22 15:33:08 -05:00
oldmud0
48675f00d0 Fix upward log scrolling down instead of up
Stop using upwards log. Seriously. No other program does this.
2020-08-22 15:17:48 -05: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
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
4ada75a3bd fix statement after break; from case 2020-08-17 13:06:35 -05:00
scatterflower
da002085ab Do not update colors in log for each IC message 2020-08-17 07:05:37 -05:00
scatterflower
ecb0ee42a3 clang format 2020-08-16 21:59:44 -05:00
scatterflower
359cad73d4 use shownames in log properly 2020-08-16 21:55:14 -05:00
scatterflower
ae7c36e609 use proper syntax to instansiate qbrush 2020-08-16 21:53:05 -05:00
scatterflower
c5f8fc8f96 make suggested changes from code review 2020-08-16 21:48:50 -05:00
scatterflower
8712ed3ca1 Don't hang IC due to invalid emote mod 2020-08-16 17:47:05 -05:00
scatterflower
4b7efc8536 allow -1 charid for system messages 2020-08-16 14:17:58 -05:00
scatterflower
3c031db2ea fix check for negative char_id 2020-08-16 14:14:26 -05:00
scatterflower
95725eb129 fix incorrect emote modifier 2020-08-16 13:53:16 -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
a31693323c
Merge pull request #250 from scatterflower/boldfix
Fix improper bolding behavior due to malformed string literal
2020-08-16 11:00:03 -05:00
scatterflower
42d939614f Fix improper bolding behavior due to malformed string literal 2020-08-16 10:59:06 -05:00
scatterflower
507180d164 Clean up logic in handle_chatmessage() 2020-08-16 08:37:12 -05:00
scatterflower
de6a2ba4ae
Merge pull request #244 from scatterflower/is241
Optimize ARUP
2020-08-16 07:26:55 -05:00
scatterflower
cd3ddfe16c Update brushes on theme reload 2020-08-16 07:21:49 -05:00
scatterflower
34604742f1
Merge pull request #245 from scatterflower/realization_fix
Check for custom realization sound when using effects list
2020-08-16 07:12:29 -05:00
scatterflower
079ce93b85 Remove clientside doublepost checking 2020-08-16 07:06:53 -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
002086343a Check for custom realization sound when using effects list 2020-08-16 04:03:56 -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
0ce60d66a7
Fix not using custom chatbox's colors (#228)
* Fix not using custom chatbox's colors

Moved set_text_color_dropdown() to after current_char is actually updated
with the selected char. Otherwise set_text_color_dropdown will try to
update the colors with either nothing as character, or with the previously
selected character.

Use get_chat() so it actually gets the name of the custom chatbox
instead of using the same name as the character.
Remove the extra "c" since get_chat_color it's already called
with this "c" in place.

* Fix previous fix crashing the client on DRO servers

For some reason the client would work just fine
if set_text_color_dropdown() was called only once
after updating the character selected by the user.
But when joining a DRO server the client would crash
just before loading the music.

* Improve comment with where crash happens

* Fix get_chat_markdown to get the custom chatbox on misc of the char

instead of trying to find the character folder on misc

* Fix client using the current character colors on other people's messages

Also remove the comment explaining the crash if set_text_color_dropdown
is removed from set_widgets

* Fix loading custom colors loading after the message was added to the log
2020-08-05 09:18:08 -05:00
windrammer
630518020a
Fix music display disappearing on theme reload (#233) 2020-08-04 10:09:27 -05:00
windrammer
07e1127096
Fix current_display_speed overflow (#232) 2020-08-04 10:03:40 -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
56d7fff500
Fix reload theme breaking BG sizing (#212)
May need additional testing with animated BGs.
2020-07-31 15:07:14 -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
oldmud0
be4b6e78ab Fix regression parsing HTML escapes
Introduced trying to fix emoji. This parsing function is cancerous.
2020-07-30 21:55:15 -05:00
Crystalwarrior
1802f6309f
Make spectator function as a character with ID -1 (#211)
- Don't hide spectator button anymore.
- Make the spectator button properly send the char switch packet.
- Fix the spectator button not properly loading the courtroom and music list etc.
2020-07-30 16:25:19 -05:00
oldmud0
906a600a64
Fix emoji displaying extraneous characters (#219)
Fixes #192.
2020-07-30 16:17:06 -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
oldmud0
6844f72ab5
Fix build error from bad merge
redefinition of objection_mod
2020-07-29 18:31:15 -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
abe80513d8
Add Qt 5.9 compatibility (#202)
* Added Ubuntu 18 backwards compatibility

Co-authored-by: Cents02 <Cents02@Cents0.me>
2020-07-29 17:43:33 -05:00
in1tiate
949a323903
Fix showname placeholder text and shout button after changing characters (#147) 2020-07-29 17:38:34 -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
likeawindrammer
b15c78af0d Add Portuguese and Polish language options 2020-07-29 11:23:17 -06:00
windrammer
0b7b70c76a
Fix character-specific theme not falling back to current theme (#207)
It is only logical to say that the user, when not specifying any specific speedline or similar in the theme, then the current theme should be checked first rather than the default theme.

Co-authored-by: Cents02 <Cents02@Cents0.me>
2020-07-29 12:19:27 -05:00
windrammer
a640def157
Fix screenshake button shunting character to origin (#215)
* Fix #193
By making sure handle_chatmessage_3 calls start_chat_ticking
and thus do_screenshake only after either play_idle or play_talking is called

* Move call to start_chat_ticking to the end of handle_chatmessage_3
2020-07-29 12:15:30 -05:00
Crystalwarrior
4a0df25c39
Fix chatlog instances where char_id 0 is ignored (#210) 2020-07-27 12:09:09 -05:00
windrammer
37520f9318
Fix connect button issue when using favorites list (#206)
Co-authored-by: Cents02 <Cents02@Cents0.me>
2020-07-27 12:08:14 -05:00
Crystalwarrior
d9d9232ea8
Fix private evidence arrows not updating (#213) 2020-07-27 12:06:33 -05:00
oldmud0
1bccc5c3d8
Merge pull request #198 from Crystalwarrior/bugfix/max_colors
Fix max colors being one int off
2020-07-26 11:17:50 -05:00
Crystalwarrior
154ba64f4a Fix max_colors allowing +1 more than the actual max 2020-07-25 19:31:36 +03:00
Crystalwarrior
e84426ae8d Credits corrected for CrazyJC and MaximumVolty involvement in 2.8 2020-07-24 18:39:22 +03:00
Crystalwarrior
29f0e06bc8
Make 'FL' packet reset settings to default and take the new settings in (#186)
* Fix colors in ic logs not parsing HTML properly when log_goes_downwards=false and colorlog=true

* Restore KFO branding

* Reset the settings values when receiving the 'FL' packet. This allows enabling/disabling features at runtime, such as ARUP system.

* Revert "Restore KFO branding"

This reverts commit 7f19b6257a0d75ec1d392b9b8c02a384c8dba43d.
2020-07-23 19:32:34 +02:00
Crystalwarrior
b2a5f517d9
Add showname alignment option for theme makers (#189)
* Add alignment options for shownames

* Make shownames align to the left by default like before

* Use this branch as an opportunity to fix showname not being resized according to misc/ folder courtroom_design.ini
2020-07-23 19:28:53 +02:00
raidensnake
b38e221fb1
Fix APNG backgrounds not appearing on list; fix BASSOPUS path for macOS (#185)
* Added apng support for animated background positioning.

* Adjusted the apng background position search.

* Fixed libbassopus.dylib path on MacOS preventing opus files from playing.
2020-07-11 23:06:38 -05:00
Crystalwarrior
4c5fdab9e9 Fix the color fix pr when logs go downwards where it didn't add an \n because html doesn't like \n very much so it has to be <br> because that's what HTML does
yea
2020-07-08 00:02:17 +03:00
Crystalwarrior
c29fe7c7ba
Regenerate the background when reload_theme is pressed to prevent scaling issues (#181) 2020-07-06 17:46:22 -05:00
Crystalwarrior
b12f82dc8c
Fix html not being parsed in ic logs when ic logs go downwards (#178)
I found this bug like 3 weeks ago but I forgot to actually make a PR for it oops
2020-07-04 19:07:09 -05:00
oldmud0
43419933e5
Merge pull request #175 from Crystalwarrior/feature/packet-music
More sensible music loop packet configuration
2020-07-04 12:17:53 -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
c533370fd8
Fix the blips folder not seeking the blips/ folder for the male.wav sound effect first instead of trying to find sfx-blipmale in base/general folder, makes using the blips folder more viable. (#173) 2020-07-04 12:15:19 -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
oldmud0
5cd9da3706 Credit some more people
Not sure how to split this up, frankly. Some people have been more
involved in client/server/protocol development than others. I'll figure
this out eventually.
2020-07-03 09:58:03 -05:00
Crystalwarrior
19c3aa93fe Some commit managed to regress the colors and it actually totally wasn't my fault!!!
Fix colors being broken
2020-07-02 21:52:35 +03:00
Crystalwarrior
6d4eb87749 Add explanation comments to the music looping vars
Make music not loop by default for backwards compatibility with old style on servers not supporting clientside music looping
Make the music loop when the packet containing loop data gives us "1", treating it as "looping=true".
2020-06-30 23:29:51 +03:00
Crystalwarrior
19d0c29b35
Fix issues when undefined colors result in everyone's chat not using talk anims (#174)
base/misc/default/config.ini with properly defined "baseline" colors will have to be supplied with vanilla content later.
Remove hardcoded colors - user has no access to these unless config.ini is valid, yet when others speak using these ID's their text shows up just fine.
Either reimplement full on hardcoding madness (NOOOOOOOOOOOOOOOOOOOOOOOO NO NO NO NOOOOOOOOOOOOOOOO NOOOOO!!!!) or yeet.
I chose the sensible option :^)
2020-06-29 10:39:27 -05:00
in1tiate
45baa626bc set tooltips of char buttons to char names 2020-06-27 10:11:33 -05:00
oldmud0
3d3de26140 Fix connect button not enabling
Apparently this had never been staged, and while everyone was having
problems with the connect button, everything was working just fine for
me.

This enables the connect button a bit earlier in the handshake process
than in 2.6, since there are some older servers out there that don't
send FL (and so the connect button would never get enabled). This might
lead to race conditions, and sometimes the progress bar does hang,
but you can just cancel and reconnect - I haven't encountered a crash
so far.
2020-06-12 16:45:50 -05:00
oldmud0
35b9c834e2 Lobby: Fix incorrect sorted server list 2020-06-10 14:33:10 -05:00
oldmud0
f13635b5cd Update credits again
- Alphabetized QA section
- Added MaximumVolty
- Added court-records.net
- Renamed Unishred to Lewdton
2020-06-10 14:33:10 -05:00
oldmud0
e0fb90984c Update about dialog
- Credited FanatSors
- Added Qt version, audio engine, and build date
2020-06-06 23:20:32 -05:00
oldmud0
032e53d157 Fix SFX playing at 1/100th of its intended volume 2020-05-31 21:54:35 -05:00
oldmud0
8e106c5d21 Fix server list showing in reverse order 2020-05-31 17:08:01 -05:00
oldmud0
6dde524a16 Lobby: Change "font_*" config entry to "*_font" 2020-05-31 17:07:35 -05:00
sD
e81fac7e07 fix qt sfx player 2020-05-23 19:28:34 +02:00
sD
7a7dd25459 i don't need this 3 times 2020-05-23 19:21:25 +02:00
sD
8a4fc4516c fix qt music player 2020-05-23 19:18:35 +02:00
sD
e7ec42f977 undo branding 2020-05-23 18:41:27 +02:00
sD
3329ce1416 use new hdid method if supported 2020-05-23 18:32:45 +02:00
sD
ba9aebec57 translate stuff that got run over 2020-05-23 18:32:05 +02:00
sD
68bd38b7fe forgot those on noaudio 2020-05-23 17:28:54 +02:00
sD
5922bf748a no and zone 2020-05-23 17:28:27 +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
df8f19320b Bring back CI changes and macOS support 2020-05-22 19:35:49 -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
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
in1tiate
8c0bb87f09 specify encoding for qsettings calls 2020-05-20 00:22:48 -05:00
oldmud0
4af7bc5fff
Fix broken APNG (#153)
* Remove explicit APNG check

* Update aocharmovie.h
2020-05-19 18:49:29 -05:00
oldmud0
e9940c82bd
Fix syntax error from unclean merge 2020-05-02 21:44:34 -05:00
oldmud0
bbdad2a40d Merge branch '2.7-rc'
Includes full code reformat.

# Conflicts:
#	src/aomusicplayer.cpp
#	src/path_functions.cpp
2020-05-02 21:29:06 -05:00
sD
992c0b14e1 what is this, c++ for ANDs
this kept it from buildinf with MSVC
2020-04-24 12:54:48 +02:00
cents
896c4e4dbc Fixed wrong name being written in mirror mode 2020-04-23 11:57:27 -07:00
likeawindrammer
0a656d222d fix typo 2020-04-21 01:52:17 -06:00
cents
8fa96535ef Hooked up the new settings
Did you know you could scale the iclog with ctrl + mouse wheel?
2020-04-20 12:37:28 -07: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
cents
5f88b1fd30 Removed Duplicates 2020-04-19 12:47:50 -07:00
likeawindrammer
5bd8c960c9 Fix crash on saving settings
Thanks Initiate for actually fixing this
2020-04-19 12:35:03 -06:00
stonedDiscord
1e2d71fb96
Merge pull request #134 from AttorneyOnline/streammusic
Streaming music
2020-04-19 16:10:59 +02:00
likeawindrammer
f224ea0589 Add Polish to the language options 2020-04-18 15:04:34 -06:00
likeawindrammer
58b7725406 Change second exclamation to period on tooltip
No need for two exclamations
2020-04-18 02:40:46 -06:00
likeawindrammer
26872be05d Add missing periods on two tooltips 2020-04-18 02:35:09 -06:00
likeawindrammer
9faf41a89f "interupted" -> "interrupted"; "expierence" -> "experience" 2020-04-18 00:45:13 -06:00
likeawindrammer
ac60466ac9 "IC_Log" -> "IC Log" 2020-04-18 00:14:59 -06:00
likeawindrammer
9a041bdf2a Change some tooltips 2020-04-18 00:00:43 -06:00
likeawindrammer
50d5aa2a0e Revert "Change "Custom shownames:" to "Show custom IC names:""
This reverts commit cd034b996a.
2020-04-17 23:26:44 -06:00
likeawindrammer
aed4396584 Change tickbox to checkbox
As far as I know checkbox is more common
2020-04-17 23:21:05 -06:00
likeawindrammer
cd034b996a Change "Custom shownames:" to "Show custom IC names:"
"shownames" isn't a word, and what does "Custom shownames" even mean anyway?
"Show custom IC names" should do a better job at explaining what this option does.
2020-04-17 23:13:18 -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
in1tiate
901012eb28
Remove dumb memes (#141)
* remove memes

* Update courtroom.cpp
2020-04-12 15:43:39 -07:00
oldmud0
21a8b6f6e6
Merge pull request #139 from AttorneyOnline/posdrp
Fix an oversight with the pos dropdown, add a small feature
2020-04-11 22:46:57 -05:00
in1tiate
ed9632f220 fix dropdown bug, add minor feature 2020-04-11 20:04:41 -05:00
likeawindrammer
8486e19119 Add Portuguese translation 2020-04-11 18:21:04 -06:00
Crystalwarrior
e0ae7c0eb5 Fix evidence display viewport element being a FUCKING JACKASS 2020-04-02 23:10:54 +03:00
Crystalwarrior
71ebdac1c1 Fix collapse all rightclick option being annoying in its behavior. Now it's *smart*! 2020-04-01 20:01:00 +03:00
Crystalwarrior
c49c9cdd77 Fix weird behavior with area list and arup system + wrong column being used for 'metadata' 2020-04-01 19:48:58 +03:00
sD
02dd9b0a35 bass being bass again 2020-04-01 12:51:24 +02:00
sD
1b5c1ebb04 don't look in music for URLs 2020-04-01 12:51:13 +02:00