Commit Graph

89 Commits

Author SHA1 Message Date
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
oldmud0
62532f0b64
Trivial comment change 2021-01-10 10:41:34 -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
3a207dccf0 i barely had to modify this 2021-01-09 15:13:19 -06: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
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
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
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
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
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
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
in1tiate
fe3224d7e8
Add vertical offset feature (#333) 2020-11-10 08:43:18 -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
in1tiate
48f8d8aa27 add variable check for evidence presenting 2020-09-19 04:12:40 -05:00
Crystalwarrior
c392bb3415 Revert the meme of instant text.
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-11 23:39:32 +03:00
Crystalwarrior
8cc067dee4 More accurate/consistent blip rate functionality inspired by https://youtu.be/Min0hkwO43g 2020-09-11 22:17:13 +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
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
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
ecb0ee42a3 clang format 2020-08-16 21:59:44 -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
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
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
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
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
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
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
Crystalwarrior
c423a5ee56
Make music 'fade out previous' an effect enabled by default (#196)
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-07-26 11:21:58 -05: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
Crystalwarrior
dfac0652c8 Add possibility for custom use text besides just "played music"
Implemented "presented evidence" message
2020-04-13 17:16:26 +03:00
Crystalwarrior
a4e448576b Make pos dropdown more abstract and actually useful by letting servers send 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-02-24 22:20:43 +03:00
Crystalwarrior
43c4e3e9d7 Network effects folder so you don't need to modify your own char.ini to see custom effects 2020-01-17 18:41:27 +03:00
Crystalwarrior
eb014a9778 Add a message delay modifier when punctuation is reached to simulate Ace 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-12-05 22:46:26 +03:00
Crystalwarrior
a9a0f65ddb Allow area list to contain metadata (as well as categories for future expansion)
Fix backwards compatibility breaking when you join a server that doesn't support effects after previously joining a server that does
2019-10-12 17:57:18 +03:00
Crystalwarrior
91eeffb959 Courtroom Fonts can now have the "sharpness" setting (pixelated/no anti alias) 2019-10-06 13:47:36 +03:00
Crystalwarrior
9f543f9ef7 I HAVE CONQUERED BASS HELL
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-05 20:32:19 +03:00
Crystalwarrior
9451822e09 Fix move func making characters slowly move to the left every frame on 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-03 23:17:21 +03:00