Commit Graph

327 Commits

Author SHA1 Message Date
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
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
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
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
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
Skye Deving
a0ef2a75ef Encode doc contents with hash sign 2021-01-04 06:43:40 -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
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
b159ca35df
Fix sounds and blips being muted forever on changing character (#345)
Re-fix of #277.
2020-12-28 00:49:50 -06:00
stonedDiscord
fa083923f9 change the sfx tooltop description 2020-11-16 15:17:49 +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
stonedDiscord
1e1ada7437 stop them from dragging the courtroom 2020-11-05 23:27:49 +01:00
stonedDiscord
997462ad54 set no maximize flag on courtroom 2020-11-05 23:17:22 +01: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
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
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
48c7984d66 Add dropdown function to set_widgets 2020-09-07 12:40:22 -05: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
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
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
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
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
102ca4d641 Create brushes for area list once 2020-08-15 19:47:24 -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
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
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
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
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
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
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
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
sD
ba9aebec57 translate stuff that got run over 2020-05-23 18:32:05 +02:00
sD
5922bf748a no and zone 2020-05-23 17:28:27 +02:00