aboutsummaryrefslogtreecommitdiff
path: root/include/courtroom.h
AgeCommit message (Collapse)Author
2020-09-19add variable check for evidence presentingin1tiate
2020-09-11Revert the meme of instant text.Crystalwarrior
Instant text using }}} is not only meme-worthy in how limited it is in practice, it also makes the blip ticker completely confused how and when to play the blips (to make instant text possible, the entire system needs rewriting (again)
2020-09-11More accurate/consistent blip rate functionality inspired by ↵Crystalwarrior
https://youtu.be/Min0hkwO43g
2020-08-25forgot to ctrl+s header definitions fuckCrystalwarrior
2020-08-25Implement clock pausingCrystalwarrior
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-25Introduce the timer packet - "TI".Crystalwarrior
This timer will start the clock accounting for latency! Cool, right? Remove useless qDebug() for music looping
2020-08-25Actually make use of the completely useless CHECK and CH keepalive timer and ↵Crystalwarrior
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-21Proof of concept complete. The timer will now take int msecs to start, and ↵Crystalwarrior
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-19Reset BASS when switching devices; drop Qt Multimedia support (#262)scatterflower
* 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-19IC log rewrite (#259)Crystalwarrior
* 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-18Improved blankposting (#256)Crystalwarrior
* 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:ok_hand: 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-16clang formatscatterflower
2020-08-16further cleanup of chat handlerscatterflower
2020-08-16Merge branch '2.8' into ic_fixesscatterflower
2020-08-16Ensure consistent behavior in IC log, clarify showname logic, and define ↵scatterflower
constants for minimum and maximum packet sizes
2020-08-15Create brushes for area list oncescatterflower
2020-08-15Only regenerate the area list once per ARUP packetscatterflower
2020-07-31Add "Play Random Song" option (#200)Crystalwarrior
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-31Add a p_char optional argument to set_fonts() (#209)Crystalwarrior
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-29Add support for multiple custom interjections via context menu (#162)in1tiate
* 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-29Fix colors not persisting when refreshing IC log (#204)windrammer
Co-authored-by: Cents02 <Cents02@Cents0.me>
2020-07-29Hitting return on blank search box should collapse music list (#205)windrammer
* If enter is hit with no query it collapses the music list Co-authored-by: Cents02 <Cents02@Cents0.me>
2020-07-26Make music 'fade out previous' an effect enabled by default (#196)Crystalwarrior
Simply make the "FADE_OUT" music effect flag by default so more users experience the SMOOTH FADE OUT magic by accident and praise the based client.
2020-05-22clang 2 electric boogalooCrystalwarrior
{ BasedOnStyle: LLVM, BreakBeforeBraces: Stroustrup}
2020-05-22Clang-ify the code with this styling using Visual Studio Code:Crystalwarrior
{ 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-04-13Add possibility for custom use text besides just "played music"Crystalwarrior
Implemented "presented evidence" message
2020-02-24Make pos dropdown more abstract and actually useful by letting servers send ↵Crystalwarrior
only pos you can actually access. Pos dropdown system also reads the actual bg folder of the current BG to see all the created pos.
2020-01-17Network effects folder so you don't need to modify your own char.ini to see ↵Crystalwarrior
custom effects
2019-12-05Add a message delay modifier when punctuation is reached to simulate Ace ↵Crystalwarrior
Attorney 1 chat parsing (replicating the effect where characters would make a short pause, as if saying the line out loud) TODO: Make this a configurable thing
2019-10-12Allow area list to contain metadata (as well as categories for future expansion)Crystalwarrior
Fix backwards compatibility breaking when you join a server that doesn't support effects after previously joining a server that does
2019-10-06Courtroom Fonts can now have the "sharpness" setting (pixelated/no anti alias)Crystalwarrior
2019-10-05I HAVE CONQUERED BASS HELLCrystalwarrior
BEHOLD, LOOP_START AND LOOP_END MUSIC POINTS! It reads the songname.mp3.txt file, looking for loop_start, loop_length and loop_end in samples MUSIC EFFECTS SYSTEM THAT CAN ***COMMUNICATE WITH THE SERVER***, WOAHHHHHHHHH! RIGHT-CLICK CONTEXT MENUS TO ENABLE/DISABLE SPECIFIC MUSIC EFFECTS MUSIC EFFECTS ENUMS Fix an issue with music looping
2019-10-03Fix move func making characters slowly move to the left every frame on ↵Crystalwarrior
animated chars which are sized differently from viewport Add a new get_qfont function Fix message box font being different from every other font due to incorrect font loading scheme Fix ui_evidence_save and ui_evidence_load tooltips being wrong
2019-10-03Remove /rainbow as clientside slash commands are cursed. I shall purge all ↵Crystalwarrior
clientside slash command memery soon... Fix /save_case iterating from last to first instead of first to last Implement private evidence saving/loading to and from an .ini file
2019-10-03Positional evidence implemented. Click a button to change between ↵Crystalwarrior
private/global evidence list. There's also a button to transfer evidence to global/private, context sensitive. TODO: Save/load private evidence list
2019-10-02Add rightclick context menus to sfx dropdown, iniswap dropdown and effects ↵Crystalwarrior
dropdown to open the ini's and respective folders try to fix settings menu (I failed)
2019-10-02Rewrite pairing character ordering logic to instead operate based on a ↵Crystalwarrior
user-accessible drpodown menu (it's a dropdown for the future when there's more options) Fix current charmovie breaking offsets Make pairing offsets applicable even without a pairing partner, making it a generic offset Fix the chat message hardcoding max colors to 8 (when it should be max_colors) Come up with a way to convey the ordering information without creating an extra new packet in a cool way (backwards compatibility AND less clutter!) More info on the evidence_x and evidence_ok tooltips Don't mute music when you switch to CSS anymore
2019-10-01Fix some read_file errors on effect loadingCrystalwarrior
Make FM packet only fetch music, and new FA packet to fetch areas (this way you don't have to reload the entire music list just to get new areas) Fix a possible segfault with emote lists if emote list size is bad Hide casing button if server doesn't support casing Hide the remove buttons by default for iniswaps and sfx list so they're not clickable when they shouldn't be Prevent background from being displayed unless the server asked us to Fix some redundancy surrounding current_side Rework music list so list_music doesn't care about search bar and the hiding is actually done in the search function Implement text centering, rightening and justifying Fix text scrolling meme that happened with \n and skipped chars Fix the pos dropdown not actually caring if you selected jur and sea pos. Fix the pos dropdown sending like a million packets when scrolled through. Prevent characters from being incorrectly resized if a different-scaled character speaks Fix character select screen letting you choose characters that the server doesn't want us to be
2019-09-28Strip out QRandomGenerator because it's "too new" of a module (linux build ↵Crystalwarrior
does not compile with it) Add QPluginLoader checks for qapng and qwebp
2019-09-28Overhaul the evidence system:Crystalwarrior
You can now press the checkmark to save evidence. The checkmark only appears when your edited evidence differs from evidence on the server. You will now be alerted if you try to exit out of the evidence with unsaved changes (pressing "X") Fix double-clicking on image name not doing anything You will now be alerted if the evidence changed as you were editing it Add tooltips Make an evidence_close function that can be referred to from multiple places
2019-09-27i did itCrystalwarrior
i did the thing Final overhaul of filter_ic_text Fix spoken colors not being actually spoken Fix a message of ()()()() spamming idle/talking animations (instead it just does the idle animation until you feed it an actual character) Prevent spamming of play_idle and play_talking on the fastest text speed Properly escape html and construct a message that works with characters &, <, >, ", etc. for filter_ic_text Turn whitespace into html entities to prevent html from eating it up (alternative/better solution would be to erase excessive whitespace entirely but yaknow, some niche applications, whatever) Fix filter_ic_text not displaying the best string it could in ic logs (strip html, display newlines as \n, etc.) Scroll the scrollbar of the message box correctly according to some real wacky magic stuff I'm doing here. Let's hope there's no situations where it desyncs from the actual text.
2019-09-25Optimize color markdown stuff properly by creating lists and preloading thingsCrystalwarrior
2019-09-25Hellcommit of doom and sufferingCrystalwarrior
Create two new helper functions - get_chat_markdown and remake read_char_ini_tag to be read_ini_tags for more general purpose Modify aolineedit to support preserving selection after unfocusing (building this for using dropdown list for setting colors), as well as remove the setReadOnly functionality and use it in signals instead Overhaul the color system to get rid of inline colors, allow full customization of colors and usage of configuration files for every facet of how a color functions (should we be talking, should we remove that markdown char, etc.) Complete overhaul of color markdowns system TODO: Make this thing not lag to hell, fix chat messages hogging the IC as the animation never ends apparently
2019-09-24Change all instances of "colour" to "color" for consistency's sakeCrystalwarrior
Overhaul inline colors system to properly support additive text and further expansion Add two new colors - Gray and Blank, the latter being used for IC parsing. Instead of adding text symbol by symbol, reveal more of the already-rendered text instead so that it properly anticipates words that need to be on the newline. Changed the append_ic function slightly so it appends ": " to text only after it's no longer needed. Made gray color less inconsistent with everything else
2019-09-24When the background is changed, display it in the correct position as ↵Crystalwarrior
dictated by the server packets Add a new "set pos" packet Udpate the pos dropdown according to the current pos
2019-09-23Make music list a QTreeWidget instead for easier category searching, etc.Crystalwarrior
Temporarily allow music suffix until I let the client perform a fileExists check similar to how images are handled (.mp3? play mp3, if not mp3, play .ogg, etc. etc.)
2019-09-21Clear the screen and display the background in the correct position when ↵Crystalwarrior
background change func is called
2019-09-20Tweak the ambience/crosfade layer to fade in regardless of another sample ↵Crystalwarrior
being there Fix music not being looped sometimes Prevent channel less than 0 from being passed Set up a new music display element with an attached music name, it displays a scrolling text of the currently playing music Fix music packet processing issues Make SFX slider responsible for all music channels besides 0 (actual music) scrolltext.cpp code recipe was taken from https://stackoverflow.com/questions/10651514/text-scrolling-marquee-in-qlabel - thanks to leemes for that one, I only adapted it for newer C++ version and tweaked some stuff.
2019-09-18Concurrent evidence updating!Crystalwarrior
Similar to the way Google Docs work, the evidence will be updated immediately as you make any changes to it.
2019-09-18Evidence and emotes reloading when reload_theme is pressedCrystalwarrior
Update evidence a bit and change the way it sets images to something much better and less confusing Update the hovering logic a bit so there's less weird occurences happening e.g. evidence button is deleted