Commit Graph

789 Commits

Author SHA1 Message Date
oldmud0
d137022174 Remove another markdown thing 2021-12-18 22:02:30 -06:00
oldmud0
133b3b58d9 Remove markdown thing 2021-12-18 21:40:11 -06:00
oldmud0
f1107aeac5 Finish out feature
- Add periodic timer for heartbeat
- Add option to settings for opting out from heartbeat/player metrics
- Change base URL to permanent URL
2021-12-18 20:29:55 -06:00
Salanto
641cca6504
Add compiler flags to ensure correct signal is used in older versions (#617) 2021-12-14 20:32:05 -06:00
Salanto
bc49b3e976 Update slots/signals to Qt5 connection style and eliminate some clazy warnings 2021-12-11 02:09:27 +01:00
in1tiate
658a1ae624 Add an explicit check for empty string to dir_exists 2021-11-15 17:03:36 -06:00
in1tiate
101a5e506f Fix all files being allowed past the suffix check for images 2021-11-15 16:48:46 -06:00
Salanto
1f985c65c7 Resolve compile error due to enum first introdcued in Qt 5.14
Could Linux distros please update their Qt version? Thanks.
2021-10-12 07:27:06 +02:00
Salanto
2a923ac86f
Purge most clientside-OOC commands (#599)
Remove OOC-Client commands that are already replaced by UI elements that are easily accessible.

Debatable if /save_case and /load_case should stay as they seem unused by most users/servers.

* Maintain backwards compatability with older servers.

Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-10-11 17:53:44 -05:00
Rosemary Witchaven
3c3b88f05c
Fix paired character only playing animations once (#603) 2021-10-10 17:59:07 -05:00
Rosemary Witchaven
273ae64535
Add missing check for anim_state 5 (#601) 2021-10-09 10:29:15 -05:00
Rosemary Witchaven
c163aab671
Allow user to configure log timestamp format (#590)
* user configurable timestamp format

* fix label making the entire settings window move jankily

* add a dropdown for sane timestamp formats

* streamline adding options to log timestamp format
2021-09-22 18:59:59 -05:00
Rosemary Witchaven
b2a4a41fd7
Fix background positions with no desk inheriting the previous position's desk (#598)
* kill bglayer if file not exist

* kill ALL layers if file not found
2021-09-18 09:33:00 -05:00
Salanto
97b1757da9 Remove /pair as a client-side command
Who was using this anyway?
2021-09-08 22:13:22 +02:00
Salanto
74d01e81fb
Fix VPath lookup ignoring possibility of remote files (#588)
* Fix VPath lookup ignoring possibility of remote files

* Use more formal URL check

Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-09-02 18:25:28 -05:00
Rosemary Witchaven
7ce4dd6f61
Use event filters instead of subclassing QLineEdit and QPlainTextEdit (#587)
* replace aolineedit and aotextedit with event filters
* use a button to make evidence editable instead of double click
2021-08-30 21:23:11 -05:00
Rosemary Witchaven
8b82f5d592
Fix an infinite hang when loading the pair character, fix strange undesired behavior of the pair character (#586)
* sanity check if the frame we're waiting on isnt nonexistent

* consolidate conditionals
2021-08-24 19:37:13 -05:00
in1tiate
3bcf01bb21 asynchronously load animations for bigly performant gainz 2021-08-13 03:23:12 -05:00
in1tiate
2a18c1cdec wait for thread to finish before starting new one 2021-08-11 20:14:35 -05:00
in1tiate
d84194871e comment out debug_movie 2021-08-11 09:38:05 -05:00
in1tiate
51698ca6ac debug_movie fixes 2021-08-11 09:28:59 -05:00
in1tiate
ce94cd2d1e preload next frame before ticking over 2021-08-11 09:20:00 -05:00
in1tiate
6bbb45a6d1 handle expanded desk mods on chat ticking start 2021-08-01 11:13:52 -05:00
in1tiate
15f0ee3838 swap out custom UNUSED macro for Q_UNUSED 2021-07-29 08:54:34 -05:00
in1tiate
2d3cab82c8 Fix custom objections not playing sounds 2021-07-22 12:26:57 -05:00
Rose Witchaven
5190490a07
Set BASS_CONFIG_DEV_DEFAULT to 1 to enable automatic reinitialization of the default device when it is lost (#564)
fixes #561
2021-06-18 23:58:46 -05:00
Rose Witchaven
65f812cf73
Extend /pair command to work with character names as well as IDs (#562) 2021-06-16 23:58:39 -05:00
oldmud0
b682d69e49 Use new HTTP-based master server client 2021-06-13 22:16:41 -05:00
oldmud0
9e0a964af8
Merge pull request #554 from AttorneyOnline/feature/mounting
Add support for mounting multiple base folders
2021-06-09 19:41:09 -05:00
oldmud0
2f50cd5528 Clear case sensitive cache as well on vpath cache flush 2021-06-08 23:12:19 -05:00
oldmud0
2cb7ca7895 Move global stylesheet to lobby and courtroom
This way, it will not affect the options dialog.
2021-06-08 22:50:32 -05:00
oldmud0
fbce4937ef
Merge pull request #557 from AttorneyOnline/minor-optimize
Fix excessive calls to arup_append
2021-06-08 22:08:04 -05:00
oldmud0
7cbd343ce9 Fix excess calls to arup_append
According to profiling results, arup_append was being called around 90k times (!!) because it had been placed in the inner for loop. That's (tracks * areas)^2. Yikes!
2021-06-06 23:42:51 -05:00
oldmud0
b0a0926d35 Fix minor memory leak with configini 2021-06-06 23:39:19 -05:00
oldmud0
dcce175052 Fix clazy-range-loop-detach warning 2021-06-06 23:31:48 -05:00
oldmud0
e576a8b23d Fix bug with case-sensitive vpath lookup 2021-06-06 23:27:30 -05:00
oldmud0
9ecd7c453c Merge branch 'master' into feature/mounting 2021-06-06 23:23:33 -05:00
in1tiate
4fe4e6ad54 remember past search term when switching between area and music list 2021-06-06 22:54:14 -05:00
oldmud0
2ef7b206e2 Scan themes in all mount paths 2021-06-06 22:42:16 -05:00
oldmud0
387233e9e3 Don't store key in asset lookup cache 2021-06-06 22:41:40 -05:00
oldmud0
7a1c3f385e Greatly improve case-insensitive lookup speed
By using hash tables, the algorithmic complexity of the case-insensitive
lookup has been reduced from O(n * k) to amortized O(k), where n is the
number of files in each level and k is the number of directory levels
that need to be traversed.

This massively improves performance on Linux when loading characters,
especially when there are many missing characters, since it is no longer
necessary to scan the entire character folder repeatedly.
2021-06-05 22:27:56 -05:00
oldmud0
037d96a5d9 Use intuitive behavior for loading assets with ambiguous extensions 2021-06-05 20:28:55 -05:00
oldmud0
d27501313c Finish mounting feature
To pull this one off, a new class called VPath was created that denotes
"virtual" paths that can exist anywhere among the list of mount points.
It is functionally identical to QString, except that implicit conversion
between QString and VPath is not allowed. This makes it easy to spot
errors in path resolution at compile time, since get_real_path must be
called to resolve a VPath into an absolute path that can be passed into
a Qt function as a QString.

Other functions, such as the get_*_suffix functions, also return an
absolute path QString for convenience.

As for the rest of the functions that return a VPath, you will need to
call get_real_path yourself.

Finally, a path resolution cache was added to try to avoid blowing
up what is already a massive lookup cost for assets. The cache
is invalidated when the mount path list is changed.

Currently, this cache isn't bounded. Might need to write an LRU cache
if issues arise.
2021-06-05 14:58:40 -05:00
oldmud0
97f3d7a8bc
Merge pull request #549 from Salanto/asset-packet-musiclist
Music list streaming support over ASSet packet
2021-06-02 22:50:19 -05:00
oldmud0
a023657348 Partial: Add mount list to options dialog 2021-05-29 10:43:53 -05:00
in1tiate
167aae750f account for both theme and misc pathing which are different because this program is well made and does not make me want to pull my hair out 2021-05-16 00:41:41 -05:00
Salanto
c6207a5478 Commit suggestion 2021-05-12 13:42:41 +02:00
Salanto
c056182ba0 Merge branch 'add-asset-packet' into asset-packet-musiclist 2021-05-12 01:56:33 +02:00
Salanto
8fc75f29a7 Prevent crash when sending empty ASS packet 2021-05-12 01:56:15 +02:00
Salanto
b8b6d3cbb3 Add musclist streaming support
Attempt Nr. 2 - Based on #548 and #501

+ Allows client to use a remote source as a last resort if the file can't be found locally.
+ Adds a check if the target file is missing.

This implementation assumed the streaming source to be structured like a webao content respository
2021-05-05 00:42:48 +02:00
Salanto
004bf12428 Merge remote-tracking branch 'origin/handle-music-refactor' into asset-packet-musiclist 2021-05-05 00:24:57 +02:00
Salanto
8a9bb6dc69 Add Asset Packet
This packet is used to send the client the URL of an online content repository, if available.
2021-05-04 05:39:50 +02:00
oldmud0
bea9fc1a05
Merge pull request #526 from AttorneyOnline/crystalwarrior/demo-reload
Add a /reload command that quickly reloads the current demo
2021-04-29 01:29:11 -05:00
oldmud0
75da07d190
Merge pull request #545 from MangosArentLiterature/default-shownames
Add default shownames
2021-04-29 00:53:57 -05:00
oldmud0
1d809726a9
Merge pull request #542 from AttorneyOnline/fix/aolayer-crap
Fix AOLayer-related regressions, deprecate BS no one uses and return sane behavior
2021-04-29 00:44:50 -05:00
MangosArentLiterature
99d083d114 Add default shownames
Adds a new setting to config.ini to set a default showname. This works similarly to default username, but for IC shownames, setting the client's showname automatically. Like default username, this has a 30 character limit.

* Adds a new option to config.ini, default_showname.
* Adds this setting to the options dialog.
* Adds get_default_showname() for retrieving this showname.
* Sets the showname box to this value upon joining a server.
2021-04-28 00:43:06 -05:00
in1tiate
0ced99c966 check for effects without path in p_misc 2021-04-26 12:14:16 -05:00
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