aboutsummaryrefslogtreecommitdiff
path: root/src/courtroom.cpp
AgeCommit message (Collapse)Author
2022-07-31Add "edit" and "open folder" actions for dropdowns (#776)Crystalwarrior
* Add "edit" and "open folder" actions for dropdowns: - CharSelect char button with "edit char.ini," "open this char folder" - pos dropdown with "open this background" - text color dropdown with "open chat_config.ini" - evidence button with "open evidence folder" - sound list with "open sounds folder" - music list with "open music folder" - theme list with "open themes folder" * Implement "Play <sfx_name>" for the Play action, and only show it if the sfx is not "0" or "1" or "-" Co-authored-by: stonedDiscord <Tukz@gmx.de> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2022-07-31Pending ghost messages (#736)Crystalwarrior
This feature allows text to be posted to the IC log as a "ghost" before it has been displayed in-game. When desync chat is enabled, it's common for the player to wait a little while before their messages are displayed. Ghosts only apply to the active player's messages, not all queued messages. They are also pinned at the end of the IC log until they are displayed. Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com> Co-authored-by: stonedDiscord <Tukz@gmx.de>
2022-07-30Never send an unencoded packet to the server (#719)Crystalwarrior
* never send an unencoded packet to the server * oops * Improve packet validation to remove segfaults * WARNING: commit breaks connecting to servers, need help start fixing omniwhy caused by single fuckin string packets (AAAAAAAAAAAAAAAAA) * Fix failed connections to servers (Thanks to @Iuvee for helping me figure this out!) * Fix demoserver * who the fuck still uses goto Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * ANOTHER GOTO???? Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * braces Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * good bot Update src/packet_distribution.cpp Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Fix demoserver harder * Improve demo logging * Fix memory leakage by deleting the packet Fix useless demoserver wait packet creation when none of that packet is used Co-authored-by: stonedDiscord <Tukz@gmx.de> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Salanto <62221668+Salanto@users.noreply.github.com>
2022-07-30Add settings option for "sfx_on_idle" which allows you to play a custom SFX ↵Crystalwarrior
alongside an Idle emote (#744) * Add an "sfx_on_idle" FL packet flag, UNFORTUNATELY servers have to go out of their way to support this feature due to clients below 2.10 fucking spamming sfx for 2.10 otherwise * Revert feature flag, implement a method that works regardless of server instead * Revert "Revert feature flag, implement a method that works regardless of server instead" This reverts commit c14b4fb2a1bbf2796db4a26e83609ba743826655. * Stop using FL packet, but make SFX on Idle a client-side setting to reduce confusion and reliance on servers for a client feature to a minimum. This reverts commit 687e64e37839b77923c93d13f971ee6750bd4330. * Update src/aooptionsdialog.cpp Co-authored-by: stonedDiscord <Tukz@gmx.de> Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2022-07-30Fix get_effect_property ignoring the provided effect folder and using the ↵Crystalwarrior
char.ini instead. Makes it consistent with get_effect behavior (#828)
2022-07-29Stop iniswapping from modifying the char.ini file (#712)Crystalwarrior
* Stop iniswapping from modifying the char.ini (which can potentially remove comments such as credits, charmaker notes, etc.) * Fix iniswaps.ini and soundlist.ini not using vpath * Deprecate get_char_name, making "name=" part in the char.ini no longer a thing * Fix iniswap and emote dropdowns not getting properly updated when theme is reloaded * Prevent reload theme from resetting your emote to the first one * Fallback soundlist.ini Co-authored-by: stonedDiscord <Tukz@gmx.de> Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2022-07-29Fix or suppress compiler warnings (Qt 5.15 w/MinGW) (#818)Rosemary Witchaven
* Major cleanup of screenshake code * Add pre-5.10 support for screenshake math * more compat, uglier too * add surprise tool * we don't need inline functions * only run qsrand on old versions * Squash compiler warnings * >= not > please * only run qsrand on old versions * Squash compiler warnings * >= not > please Co-authored-by: stonedDiscord <Tukz@gmx.de> Co-authored-by: Salanto <62221668+Salanto@users.noreply.github.com>
2022-07-28Fix iniswaps.ini and soundlist.ini not using vpath (#714)Crystalwarrior
Fixes #670 Co-authored-by: stonedDiscord <Tukz@gmx.de> Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2022-07-27Code to support effects ini version 2 (#813)Crystalwarrior
* Code to support effects ini version 2 * Update theme commit * Get it to actually work properly * Rework effect loading code * Added auto-migration to new format * Reorganised code for improved readability and clarity * Add functional checks for operation to not run into missing file issues * Minor logic fix * Add debug message * Trim any empty items from the list * Add mandatory culling * See https://discord.com/channels/278529040497770496/323377366997008394/998661402669617233 * Reworked implementation * Resolve warning of temporary container allocation * Unbreak what I broke last commit * Also make it a QStringLiteral to cheat clazy. * Set default layer * Ignore that for realization, that one covers the screen. * Document migration regex * This should clarify the ambiguity of its functionality and reason why it exists. Co-authored-by: Salanto <62221668+Salanto@users.noreply.github.com> Co-authored-by: TrickyLeifa <date.epoch@gmail.com>
2022-07-26Part 2 of #713: merge get_real_suffixed_path into get_real_path (#717)Crystalwarrior
* Fix get_real_suffixed_path existing, causing the previous PR to not function on suffixed... anything Fix suffixes ignoring a case where a suffixed path is already provided, causing that pre-suffixed filepath to fail to find anything * Fix image paths being used as sound effects and vice versa Better check for sfx and image absolute paths which double-checks the absolute path we got is *actually a valid file format* Co-authored-by: stonedDiscord <Tukz@gmx.de> Co-authored-by: Salanto <62221668+Salanto@users.noreply.github.com>
2022-07-23Merge pull request #819 from AttorneyOnline/lambda-coreoldmud0
Make lambda captures of 'this' explicit
2022-07-23Fix multiple issues with screenshake code (#812)Rosemary Witchaven
* Major cleanup of screenshake code * Add pre-5.10 support for screenshake math * more compat, uglier too * add surprise tool * we don't need inline functions
2022-07-23Change FL variable names for clarity (#810)Rosemary Witchaven
* Change FL variable names for clarity * Missed one somehow Co-authored-by: Salanto <62221668+Salanto@users.noreply.github.com>
2022-07-23Add Emote preview (#774)Crystalwarrior
* Add an emote preview which pops up from right click context menu * rename action names to "preanim/idle/talk" * Improve emote preview window * Preview no longer ignores offsets No longer override stylesheets Add "Preview Selected" option to the dropdown * bruh * Fix "set play once" being ignored when a (c) emote is loaded * Remove useless comments * Implement Salanto suggestions Co-authored-by: stonedDiscord <Tukz@gmx.de>
2022-07-23Suppress application volume when alt-tabbed (#730)Crystalwarrior
* Suppress application volume when alt-tabbed Add a "suppress_audio" slider setting, 50% by default, which decides how much audio remains when the client is not in focus Add a "muted" setting for blip, music, and sfx players Add update_audio_volume func * change "suppress" to "how much audio is suppressed" instead of "how much audio remains" * Fix last commit just flipping the behavior and being ultra wacky * Fix evidence present sound ignoring audio suppression settings Co-authored-by: stonedDiscord <Tukz@gmx.de> Co-authored-by: Salanto <62221668+Salanto@users.noreply.github.com>
2022-07-19Make lambda captures of 'this' explicitin1tiate
2022-07-18Add effect layering under the character, flippable effects and more (#701)Crystalwarrior
* Fix effect offsets only applying after the effect already plays Add "_layer" property which can be "behind", "character" or default "chat". This deprecates the "under_chatbox" property * Add a "sticky" effect property which is the same as "stickyeffects" setting being enabled but just for that 1 effect * Clang is tidy, clang is caring * make character layer actually stack over the character but under the desk add new "over" layer which is over everything in the viewport but under the chat box * Switch "ignore_offset" to "respect_offset" so effects only respect character offsets if explicitly told to * Appease clang tidy... mostly. I don't understand the last thing it's talking about. * Appease clang tidy further * Remove "effect_done" due to it overwriting the AOLayers behavior Add "loop" effect property so you set up in the ini if the effect should loop rather than it using the file's loop settings Add "max_duration" effect property Add "cull" effect property which decides whether to clear the effect or not when it's done (if loop is false) * Fix effects not allowed to have underscores (_) in them without breaking * Change the way effects.ini looks and is parsed to be more sane and doable. However, since order may or may not matter, you can optionally include index:name and it orders it properly. * Appeal to clang * Fix a dumb way I created QSettings in get_effects * Fix effect properties being broken due to optional index * Fix get_effect_property not getting the current theme properties if a misc theme exists * If sound list has a sound effect selected, if pre is not checked, don't play effect sound and prefer the sfx we chose instead. * Fix \f not using the theme's realization effect * Add missing curly bracket * Yolo Co-authored-by: Salanto <62221668+Salanto@users.noreply.github.com> Co-authored-by: stonedDiscord <Tukz@gmx.de>
2022-07-18Use QStyle to fetch checkbox size and spacing info instead of relying on ↵Rosemary Witchaven
magic numbers for label truncation (#805) * Use QStyle to fetch checkbox size and spacing info * remove unnecessary use of auto* * access static member the correct way
2022-07-16Add "chatbox_always_show" courtroom_config.ini option (#725)Crystalwarrior
* Add "chatbox_always_show" courtroom_config.ini option Remove copy-pasted code from set_widgets for initializing chatbox * make chatbox_always_show work with misc folders * Fix sticker disappearing despite chatbox_always_show setting Co-authored-by: stonedDiscord <Tukz@gmx.de>
2022-07-16Optimize area list slightly by recycling QTreeWidgetItems instead of ↵Crystalwarrior
clearing and creating them every time (#754) Remove index that only shows up during ARUP cuz it confuses the hell out of area indexes defined by server Co-authored-by: stonedDiscord <Tukz@gmx.de>
2022-07-16Swap a bitwise AND for a logical AND (#809)Rosemary Witchaven
Didn't cause any problems here because these are both of type bool, but it's bad form anyway
2022-07-07Support for DRO's sounds.ini as a fallback if soundlist.ini is not found for ↵Crystalwarrior
the character (#731) * Support for DRO's sounds.ini as a fallback if soundlist.ini is not found for the character * readability i guess? Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com> Co-authored-by: stonedDiscord <Tukz@gmx.de> Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2022-07-07Added Play SFX context menu action (#791)Leifa♥
* Added Play SFX context menu action Resolve #746 * The SFX context menu now allows the user to preview the sound selected by playing it. * Changed declarations for methods.
2022-06-23Added penalty effects (#786)Leifa♥
Themes can be configured to play an SFX and/or effect when the HP bar increases or decreases. Effects can be any defined effect, or a built-in effect such as "screenshake" or "flash". Resolves AttorneyOnline/AO2-Client#743
2022-06-11Add line limit to server chat and debug log panes (#784)Salanto
Set default maximum block size to 5,000 unless otherwise specified
2022-06-03Merge pull request #777 from AttorneyOnline/shorter-offsetsoldmud0
make x/y pair spinboxes shorter and not have "offset" in it
2022-06-03Merge pull request #770 from AttorneyOnline/fix-stickersoldmud0
Fix stickers being layered under the chatbox rather than above
2022-06-03improve placeholder text for IC and OOC (#753)Crystalwarrior
* improve placeholder text for IC and OOC * Keep showname box placeholder at "showname" so as not to be confusing * Apply my own suggestions * Revert "Keep showname box placeholder at "showname" so as not to be confusing" This reverts commit bad5507b9e4b9501d27b7b46e66c5e1cc2eb9859. * Bring back showname for showname box let "update_character" handle placeholder text properly Fix spectator placeholder text not appearing if switching to spectator using /switch, etc. * fix an oopsie Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2022-06-03Add icons for pos dropdown (#715)Crystalwarrior
* Add icons for pos dropdown * Make sure to upscale the icons to actually fit (so tiny 1pix bg images for ex. still show up properly) * move get_pos_path * add const to desk mod Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "add const to desk mod" This reverts commit 7d6007fb1be0781e29985d0b83f2f6da16295e90. * make set_scene const * make pos const * add and to const Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * add braces Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "add and to const" This reverts commit aa5e5066dcf42ae18c2aeb349d470271226601da. * make desk const * fix get pos path for real Co-authored-by: stonedDiscord <Tukz@gmx.de> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-06-03make x/y pair spinboxes shorter and not have "offset" in it cuz it always ↵Alex Noir
gets in the fuckin way
2022-05-23Fix screenshake misaligning the char on idle screenshake (#724)Crystalwarrior
2022-05-23Add compatibility layer for "witnesstestimony" in courtroom_sounds.ini ↵Crystalwarrior
because bubbles and buttons have no underscore, yet courtroom_design.ini does (#756)
2022-05-23Fix custom objection folders not working (#726)Crystalwarrior
Fix reload theme screwing up the default custom objection folder if a custom.gif doesn't exist near char.ini
2022-05-21Fix stickers being layered under the chatbox rather than above (but still ↵Alex Noir
under text/showname) Fix stickers being incorrectly layered and affected by effects etc.
2022-05-21Try to fix music list disappearing randomly (#768)Crystalwarrior
2022-05-21Feature: Clicking the evidence icon when it's presented by a player will ↵Rosemary Witchaven
show the details of that evidence (#760) * Add click-to-view evidence icons * Fix the clicky icon not being functional if the presented evidence comes from a different page from the first Co-authored-by: in1tiate <radwoodward@vikings.grayson.edu> Co-authored-by: Alex Noir <Varsash@gmail.com>
2022-05-21Remove "debug_log" moniker for debug log and reuse ms_chatlog so old themes ↵Crystalwarrior
don't break (#716)
2022-05-21Fix iniswap remove button removing character iniswaps (#710)Crystalwarrior
Fix the character being added twice to the iniswap if the iniswap list contains the og character name
2022-05-21Fix sound in the sound list using the alias of the sound list as the sound ↵Crystalwarrior
instead of its actual reference (#708)
2022-05-18Check for settings.png if courtroom_settings.png doesn't exist (#762)Rosemary Witchaven
Co-authored-by: in1tiate <radwoodward@vikings.grayson.edu>
2022-03-29Add two ways of controlling judge buttons that aren't hardcoded nonsense ↵Rosemary Witchaven
(networked and local) (#537) * add both network and local ways to show judge buttons on pos other than jud * hide judge buttons when pos_removing to a non-judge position * alter packet header * Only use pos jud hardcoding if no design.ini if design.ini does not define judges= then we fall back to pos jud garbage * Fix judge buttons being disabled if default_side pos is judge (logic poopy) Fix positions.isEmpty() returning False cuz a split of an empty string returns the list with an empty string by default * Expand JD packet to be able to send -1, 0 and 1. If -1 is received, fall back on client-sided judge button behavior. If 0 or 1 is received, treat it as "absolute override" and adhere to that packet. * alter check for empty qstringlist to support old qt versions * heehoo * trigger client side behavior when jd -1 is sent * less confusing variable names * remove useless code, trim some fat Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com> * use an enum dammit! & warn on malformed auth * use an enum dammit! pt. 2 * appease clang, rewrite ugly judge controls function * please squash this its so bad Co-authored-by: Crystalwarrior <Varsash@Gmail.com> Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2022-03-25Add timestamp colors you can change in courtroom_fonts.ini (#698)Crystalwarrior
* Add ic_chatlog_timestamp_color and ic_chatlog_selftimestamp_color to courtroom_fonts.ini * clang tidy. clang stronk.
2022-03-25Objections no longer force you into preanimations (#697)Crystalwarrior
* Make objections respect the user's preanim setting * Replace all magic numbers with the emote mod enum Fix preanim zoom not toggling the checkbox from char.ini, but deprecated "4" doing it * Comment handle_emote_mod a bit better to explain some jank * Fix play SFX logic being inconsistent during narrator chat (emote is "") * hail clang-tidy
2022-03-24Merge pull request #674 from AttorneyOnline/pausecharoldmud0
Add \p for "pause", which lasts 0.1 seconds
2022-03-24Fix SFX dropdown regressions, make dropdown play sound if custom sound is ↵Crystalwarrior
listed regardless of Pre (#656) * Fix SFX dropdown not playing a sound despite a sound being selected. It was waiting on a preanim box to be checked, but that behavior was not intuitive. Plus this is a regression from intended behavior * Make "default" sfx behavior behave as expected * Tidy up the network logic for emote_mod and comment all of its behavior Fix sfx not playing when immeidate is checked on * make emote_mod an enum so I don't have to go scouring documentation to learn what it does anymore not adding emote mod for enums 2, 3 and 4 cuz those are planned to be deprecated in a later PR Make Clang happy with no bracket-less if statements
2022-03-19Add showname and selfname colors to courtroom_fonts.ini (#672)Crystalwarrior
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-03-19Add blip rate of 0 which only plays a single blip sound per message (#659)Crystalwarrior
* Add blip rate of 0 which only plays a single blip sound per message * don't have copy-pasted code I GUESS
2022-03-13Allow character select list to refresh even if client is already loaded in ↵Crystalwarrior
(#655) * Allow "SC" packet to be used to refresh the character list even if the client is loaded in Fix tree list of characters not being cleared properly between "SC" packets Fix client theme breaking when joining a server with empty character select list * Do my review suggestions on CW's behalf Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2022-03-01try this reviewer (#668)stonedDiscord
* try this reviewer * test the reviewer with a very bad piece of code * it can't handle spaces * run cmake to find all the files * file go brr haha * cmake needs qt installed * rename file once again * use windows * also doesn't like brackets * can't use windows * install qt the linux way * try using cmake this way * cmon cmake * install qt before running cmake * forgot catch2 * need to install as root * add build dir * delete test file * fix 3 warnings * enable clazy * Revert "fix 3 warnings" This reverts commit 7e64d4a546c397b5b69554ccf6765bf0a068f695. * disable 3 warnings * add a bracket for readability * install clazy before * get qt 5 real * try lukkas cmake modules * dupe courtroom again to test clang-tidy * courtroom.cpp was a mistake * remove magic number warning
2022-02-23Add \p for "pause" similar to \s and \f, which will pause the text for 0.1 ↵Alex Noir
secods