Commit Graph

497 Commits

Author SHA1 Message Date
TrickyLeifa
695d51dbfe Complete AOLayer reimplementation, ...
* Complete AOLayer reimplementation
* Reimplemented sliding as well.
2024-05-22 22:10:29 +02:00
in1tiate
137a2d3a04 speedline thing 2024-05-20 12:46:35 -05:00
in1tiate
2c696f2cd1 other random fixes
fix evidence presenting sfx playing at literally 100x intended volume
fix "def2" etc wrong evidence icon position, remove inaccurate evidence positions
2024-05-20 12:32:35 -05:00
in1tiate
e2b47afd91 stop filling the log with raw net traffic 2024-05-20 12:03:36 -05:00
in1tiate
5d90088b5c clang-format pass 2024-05-20 09:12:47 -05:00
in1tiate
a23614059b add missing code from rebase 2024-05-20 09:03:16 -05:00
in1tiate
6ff71de06b fix opening bracket 2024-05-20 08:49:26 -05:00
in1tiate
adf32f4727 Initial slide rebase commit 2024-05-20 08:47:27 -05:00
TrickyLeifa
657145035c Reimplemented unit tests, ...
* Reimplemented unit tests and simplified addition of new tests
* Minimal support of Qt is now 5.15
2024-05-18 00:48:55 +02:00
TrickyLeifa
b306929311 Resolved merge conflicts.
This comment format is just tiring for the eyes. Imagine being on 1080p and not being able to read more than 5 method definitions due to comments.
2024-05-17 19:44:37 +02:00
TrickyLeifa
fefaad5394 Merge branch 'master' into kaleidoscope 2024-05-17 19:19:04 +02:00
TrickyLeifa
1ef96383c8 Lightly reworked NetworkManager, ...
* Lightly reworked `NetworkManager`
* Added new modules to handle various connection types.
  * TCP
  * WebSocket
* Added general string splitter alias based on Qt version.
* Replaced `lobby_constructed` and `courtroom_constructed`
* Refactored and partially reimplemented the following classes:
  * `AOBlipPlayer`
  * `AOEmotePreview`
  * `AOMusicPlayer`
  * `AOSfxPlayer`
  * `AOTextArea`
2024-05-17 19:04:57 +02:00
TrickyLeifa
39e4354b1d Reimplemented favorite server widget, ...
* Reworked favorite server widget
* Renamed `server_type` to `ServerInfo`
* Renamed `connection_type` to `ServerConnectionType`
* Refactored `AOCharButton`
* Reimplemented `AOButton`
* Partially reimplemented `AOEmoteButton`
* Refactored `AOEvidenceButton`
2024-05-16 03:09:21 +02:00
Cerapter
4fb61b7afd
Lift out most server-related data into its own class (#955)
* Lift out most server-related data into its own class

* Fix missing negation in the auth packet support check

* Update `get_feature(BASE_FEATURE_SET)`'s documentation

* Make the version numbers public

* Add support for custom blips

---------

Co-authored-by: in1tiate <32779090+in1tiate@users.noreply.github.com>
2024-05-15 10:19:03 -05:00
TrickyLeifa
a0cee58c04 Merge branch 'master' into kaleidoscope 2024-05-15 00:23:46 +02:00
TrickyLeifa
c9f52b7223 Ported to CMake, ...
* Ported the project to CMake
  * Android and Mac support dropped for the time
being.
  * Tests, BASS and Discord-RPC are now options
* Restructured and reformated the project.
  * Merged `include` and `src`
  * Renamed `resource` to `data`
  * Renamed various files
  * External libraries headers are no longer included in `src`
  * Replaced header guards with #pragma once
  * Multiple refactors (keywords, headers)
  * Added Qt6 compatibility
* Removed various unused functions and headers
* Reworked AOPacket
  * When content is passed to AOPacket, it should be ensured that the content is already decoded.
  * Encoding/decoding are now static methods.
* Fixed various memory leaks
* Removed animation code for AOImage
  * AOImage is always using static images
* Simplified ChatLogPiece
2024-05-15 00:04:16 +02:00
in1tiate
c9eabf35da
Add [Options] override for blips and shownames for parity with 2.5 (#953)
* split get_blips into two functions

Because otherwise it would always return only what was read from char.ini, and we want it to be able to read our custom QLineEdit too, right?

* include new function, rewrite description

* check for custom blips support in packet

* add custom blips enabled bool

* increase MS_MAXIMUM, add custom blips QLineEdit

* add BLIPNAME to chat message

* introducing custom blips

* introducing custom blips I said

* unfold if

* unfold other if

* retool custom blips code, add ini parser

* remove extraneous debug calls

* fix incorrect default value on get_showname

* restructure ini format

* fix parser again

---------

Co-authored-by: Lernos <lernoskey@gmail.com>
Co-authored-by: stonedDiscord <Tukz@gmx.de>
2024-05-14 18:02:32 +02:00
in1tiate
0142ed57c3
Ignore pair offset when zooming (#940) 2024-03-09 17:47:05 +01:00
in1tiate
b48ca2455a
Add the ability for shownames to be outlined (#939)
* showname text outline, partial messagebox outline code

* your honor i plead oopsie daisies

* Focus down code, add config hookups

* remove extraneous qDebug calls
2024-03-03 20:26:39 -06:00
in1tiate
a8b28f5070
Hide chatbox element when objecting (#933) 2024-02-29 10:43:06 +01:00
in1tiate
27726c9ce1
Add integer-based theme scaling (#935)
Configurable over the options menu,
2024-02-10 12:23:34 +01:00
in1tiate
e690e12ae2
Fix zooms with no emote modifier defaulting to 1 (show desk) (#925) 2023-11-21 11:41:15 +01:00
in1tiate
80939aa092
critical fix (#921) 2023-10-03 20:51:27 +02:00
Salanto
7c1fe80d4c
2.10.1 Changes (#888)
* Utilise .ui file to create settings dialog (#858)

* Remove config loading from AOApplications

Removes most, but not all config functions from AOApplication and moves them into their own class.

Not even remotely done here. but holy shit I'm tired.

* First steps towards UI file

* Fixed your UI layout issue

* Leifa bullies me

* Set all the setters

Reminder : Figure out why username and ooc_name exist. Are they the same? Maybe. Maybe not. Gonna have to look at it and migrate the key.

Todo : Cleanup key naming. Most of these are terrible, imprecise or I just don't like them.

* Make layout appear proper

* Minor option dialog update

* Hookup AOOptionsdialogue to Options Getter/setter

Not done yet, but parts of the options interactions work again.

* More settings menu working

* Mostly working settings dialogue

Restore default and cancel still need work

* Fix asset widget

* Tooltips

Also removes the commented out tooltip code

* Finish Tooltips

Move widget implementation to its own folder

* Migrate callwords to config.ini

Also correct sleep deprived code.

* Fix widget translation

* Language dropdown changes

We might want to look into doing this a bit better.

* Remove QSettings from AOApplication

Try cleaning up stray references to said object anymore

* Fix constructor order to prevent runtime crash

* Slightly sort implementation file

* Remove unused label declarations from header

Fix some comments

* Formatting

* Fix buttons

Also fixes restore settings when a restore to default is aborted.

* Raise pair list after courtroom construction (#859)

* Don't reset evidence selection (#860)

They are defaulted in the header. This SHOULD not affect the client negatively.

* Hitting the emergency exit (#861)

Don't change the widget state when the ID exceeds the current widget list due to pages being changed while evidence is being edited.

* add CI and license badge

* add contributors

* Handle config.temp after confirmation

* Deletes config.temp when the user has confirmed they want to keep the current settings.

* Make reset to default destructive

Don't worry, we ask first! :)

* Fix case of self_offset received without a y offset (#864)

caused by typos in #701

it's possible for older clients to send x offsets without a y
offset. if you think this case is annoying you can remove it in
the next version and handle it server-side instead

* Change default settings (#839)

* Make default config enable features for most cases except for Continuous Playback due to it introducing performance issues according to tooltip and confirmed in testing
* Increase log size to 1000
* Default disable animated themes

Co-authored-by: Salanto <62221668+Salanto@users.noreply.github.com>
Co-authored-by: stonedDiscord <Tukz@gmx.de>

* Make it a singleton? Maybe? I dunno? Ask Longbyte

* Commit suggestions

* More suggestions

Also try fixing a memory leak. Not going to well.

* Return to dialog

Otherwise we don't have Exec.

* Cleanup

* Deprecate ooc_name, implement username

* Remove ooc_name key and copy its value to default_showname if its empty.

* Consistent naming in AOOptionsDialog

* Clang format

* Don't write the username to the showname

* Fix theme dropdown being incorrectly set

* Bandaid callword playing every message

* Remove unused or duplicate includes

* More include removals

Removes lobby and courtroom direct includes from the dialog source

* Burn baby, burn!

* Remove reload_theme function

* Remove "Case Alert Supported Message"

All servers I tested on master supported it. The text is redundant in operation.

Co-authored-by: TrickyLeifa <date.epoch@gmail.com>
Co-authored-by: stonedDiscord <Tukz@gmx.de>
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
Co-authored-by: Crystalwarrior <Varsash@Gmail.com>

* Cleanup lobby (#880)

* Remove config loading from AOApplications

Removes most, but not all config functions from AOApplication and moves them into their own class.

Not even remotely done here. but holy shit I'm tired.

* First steps towards UI file

* Fixed your UI layout issue

* Leifa bullies me

* Set all the setters

Reminder : Figure out why username and ooc_name exist. Are they the same? Maybe. Maybe not. Gonna have to look at it and migrate the key.

Todo : Cleanup key naming. Most of these are terrible, imprecise or I just don't like them.

* Make layout appear proper

* Minor option dialog update

* Hookup AOOptionsdialogue to Options Getter/setter

Not done yet, but parts of the options interactions work again.

* More settings menu working

* Mostly working settings dialogue

Restore default and cancel still need work

* Fix asset widget

* Tooltips

Also removes the commented out tooltip code

* Finish Tooltips

Move widget implementation to its own folder

* Migrate callwords to config.ini

Also correct sleep deprived code.

* Fix widget translation

* Language dropdown changes

We might want to look into doing this a bit better.

* Remove QSettings from AOApplication

Try cleaning up stray references to said object anymore

* Fix constructor order to prevent runtime crash

* Slightly sort implementation file

* Remove unused label declarations from header

Fix some comments

* Formatting

* Fix buttons

Also fixes restore settings when a restore to default is aborted.

* Raise pair list after courtroom construction (#859)

* Don't reset evidence selection (#860)

They are defaulted in the header. This SHOULD not affect the client negatively.

* Hitting the emergency exit (#861)

Don't change the widget state when the ID exceeds the current widget list due to pages being changed while evidence is being edited.

* add CI and license badge

* add contributors

* Handle config.temp after confirmation

* Deletes config.temp when the user has confirmed they want to keep the current settings.

* Make reset to default destructive

Don't worry, we ask first! :)

* Fix case of self_offset received without a y offset (#864)

caused by typos in #701

it's possible for older clients to send x offsets without a y
offset. if you think this case is annoying you can remove it in
the next version and handle it server-side instead

* Change default settings (#839)

* Make default config enable features for most cases except for Continuous Playback due to it introducing performance issues according to tooltip and confirmed in testing
* Increase log size to 1000
* Default disable animated themes


Co-authored-by: Salanto <62221668+Salanto@users.noreply.github.com>
Co-authored-by: stonedDiscord <Tukz@gmx.de>

* Make it a singleton? Maybe? I dunno? Ask Longbyte

* Commit suggestions

* More suggestions

Also try fixing a memory leak. Not going to well.

* Return to dialog

Otherwise we don't have Exec.

* Cleanup

* Deprecate ooc_name, implement username

* Remove ooc_name key and copy its value to default_showname if its empty.

* Consistent naming in AOOptionsDialog

* Clang format

* Don't write the username to the showname

* Fix theme dropdown being incorrectly set

* Bandaid callword playing every message

* Remove unused or duplicate includes

* More include removals

Removes lobby and courtroom direct includes from the dialog source

* Burn baby, burn!

* Remove reload_theme function

* Remove "Case Alert Supported Message"

All servers I tested on master supported it. The text is redundant in operation.

* Create preliminary lobby design

Attempts to slightly modernize the aging lobby to a scheme more akin to modern server browsers.

* Fix missing header, add necessary search lineedits

* More UI changes

* Start hooking up new UI elements

* Hookup Serverbrowser to new UI frontend

Still need to fix the favorites AND implement the NEW demolist

* Fixup demo ui and make demoserver functional

* More demoserver cleanup

* Remove jarring ao_app pointer shenigans

Still a bit to do before we can safely remove that pointer, but hey, its something.

* *unholy screeches*

Tried to untangle the tange of dependencies that is connection behaviour

* Rip out loading screen

Some servers are not even sending proper values anymore, like vanilla, so why keep it?

* Optimise includes, format header

Lobby should not even have to know what an AOPacket is, smh

* Formatting fixes

and turn settings menu opening into a signal

* Why does netmanager never emit when the server is connected

* Fixup final parts

About as well implemented as I can do rn. Missing the load screen, but that was more flair than anything else

* Correct start page

* demo qol

Co-authored-by: TrickyLeifa <date.epoch@gmail.com>
Co-authored-by: stonedDiscord <Tukz@gmx.de>
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
Co-authored-by: Crystalwarrior <Varsash@Gmail.com>

* Delete rebase artifact

* only set setting codec on qt5

* fix old regex

* qlocale include was missing

* Add default soundfont value + cleaup stream checks

* Remove Case Announcement

* Add add_server dialog and move logic to options.h

* Add Direction Connection Widget and function

* Visual Fluff, don't show direct connection on demo screen

* Implement ui-file reload and RCC mounting.

* Add edit menu to favorites

* Add Server remains active when no server is selected

* Hack together window title for courtroom

I hate this.

* Fix incorrect subtheme location code

* Cleanup

* Make all charicons appear on first join

This entire system needs a rework, but this will do for now.

Also slightly improves performance by not making it load the character list 4 times, only 2 now :^)
closes #854

* Fix evidence hover selector under Qt5

#closes #890

* Remove options calling itself trough pointer

* Fix Android CI (#891)

* pro gamer move

* remove pregenerated android files

* version

* install old ass android platform

* Revert "remove pregenerated android files"

This reverts commit c81a94c6fd337e187af61e9dd706fac5cd51bcc0.

* switch to 24

* CharButton - Fix enterEvent override in Qt5

Also mark them as override. Also make the preprocessor if a bit less copypastey.

* version bump

* Update embeeded lobby ui color sheme

Shoutout to Dumb Fuck (That is their real discord name).

Co-Authored-By: Crystalwarrior <3470436+Crystalwarrior@users.noreply.github.com>

* Add changelog.md loading logic from main mount path

* Expand tabbar of optional Tabbar widget

* Fix order column being incorrectly sized

* missed a space

* remove fonts

* change margins

* fix minimum sizes

* Allow theme overwrite of settings menu

* Cleanup iterator for subthemes

* Allow reload of settings menu

Might aswell do them all 🤷

* AO base path (#893)

* make get_base_path global

and move parts that use base to use it

* options uses base

* sal moved a bunch of code

* fix creating case folder

---------

Co-authored-by: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>

* Android 2 10 1 (#894)

* ask for file permissions before trying to load a file

* create armv7 gitignore

* extract all the abis

* don't fail if the dir exists

* Clear options map before reloading the UI

* Fix runtime warning for theme/subtheme combobox

Shouldn't do the job of something that the template can do for me.
Also fix formatting cause it was busted.
Also made the subtheme/theme load code not give me cancer.

* Sort dropdown numerically to match explorer preview

closes #793

* fuck bass

* copy mingw

* copy other dll

* wrong folder

* Account for server subtheme

* Replace incorrect subtheme check

* Settings, not server

* Remove debug

* Add compatibility code, suppress compiler warning (#896)

lobby.cpp:
* Added compatibility code so 2.10.1 can run on Qt versions older than 5.14, such as the version that ships with Ubuntu 20.04

courtroom.cpp:
* Used a Q_UNUSED macro on an unused variable to suppress a compiler warning

* Resolve Qt6(.5.0) compiler errors

* Undo incompetence.

* Force theme reload on theme change

If a user saves a new theme and does not reload the UI it will cause misplacement of widgets inside of courtroom.
This is mitigated by forcing a reload.

* make speedlines stretch by default (in *actually* non-stupid way this time) (#901)

* Rework default volume settings (#903)

* rework volume default settings

* remove default volume settings in options dialog
* make client remember last volume settings instead

* fix options starting tab

* Reworked direct connect (#906)

Resolve issue #905
Works as advertised.

* Set join text when double-click on connected server

Good enough. I would handle this a bit smarter and lock based on the connection state of NetworkManager, but NetworkManager sucks and I refuse to fix it this close before 2.10.1 is done.

* remove unused m_looping

* remove useless underflow check

* do not fall from server to favorites

* Ci android fix (#899)

* pro gamer move

* remove pregenerated android files

* version

* install old ass android platform

* Revert "remove pregenerated android files"

This reverts commit c81a94c6fd337e187af61e9dd706fac5cd51bcc0.

* switch to 24

* use android\src\android\templates instead

* deprecate "chat" deskmod (#910)

* ignore deskmod when zoom speaking

* clean up deskmod a bit

* adds an enum for deskmods
* deprecates the "chat" deskmood
* modifies set_scene since it never rly used the deskmod argument
  meaningfully

* actually use the enums i made lol

* fix typo

* Add credits for lamdacalculus

---------

Co-authored-by: TrickyLeifa <date.epoch@gmail.com>
Co-authored-by: stonedDiscord <Tukz@gmx.de>
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
Co-authored-by: Crystalwarrior <Varsash@Gmail.com>
Co-authored-by: Crystalwarrior <3470436+Crystalwarrior@users.noreply.github.com>
Co-authored-by: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
Co-authored-by: segfault <128277930+memsecviolator@users.noreply.github.com>
Co-authored-by: lambdcalculus <64238778+lambdcalculus@users.noreply.github.com>
Co-authored-by: Leifa♥ <26681464+TrickyLeifa@users.noreply.github.com>
2023-05-31 20:17:30 +02:00
Salanto
50beb7de44
Fix incorrect judge-button display behaviour(#884)
Co-authored-by: stonedDiscord <Tukz@gmx.de>
2023-01-29 22:11:04 +01:00
stonedDiscord
a449aa86e9
Qt6 (#824)
* 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

* don't set codec in qt6

* switch to new regex

* remove qdesktopwidget (was unused)

* make enter event an enter event

* forgot header file

* rename emote_mod enum as there is an enum of the same name in chat_message

* regexp

* no more codec

* fix warning about emote_mod type

* change to new qtconcurrent

* misc was unused

* fix run

* change qtconcurrent for music

* codecs came back

* make CI run on qt6 too

* seperate artifacts

* qFormatLogMessage is wonky here

* maybe actually use the qt version from matrix

* change qt version here as well

* even lower

* use my own fixed installer

* use my own fixed version of qapng

* get websockets

* minor spelling mistake

* yOu nEeD aDdOnS

* aaaaaaaaaaaaaaaaaaaaaaaaaaaaa

* Revert "maybe actually use the qt version from matrix"

This reverts commit 7ab6b1b4c2f1200318d52f325efd2ef46c3fbd6a.

* Revert "Revert "maybe actually use the qt version from matrix""

This reverts commit a6f7c5bedf214a1992c15b296edd195f96a9196a.

* use jurplels again

* Revert "use jurplels again"

This reverts commit 5795474bca64590f1479af3ccbf7d8cc57f427e7.

* revert CI to master

* main not master

Co-authored-by: in1tiate <woodward.randall02+github@gmail.com>
2022-12-28 21:35:11 +01:00
oldmud0
dedf6af27a
Fix case of self_offset received without a y offset (#864)
caused by typos in #701

it's possible for older clients to send x offsets without a y
offset. if you think this case is annoying you can remove it in
the next version and handle it server-side instead
2022-09-06 00:36:03 -05:00
Salanto
7746b9593c
Don't reset evidence selection (#860)
They are defaulted in the header. This SHOULD not affect the client negatively.
2022-08-20 14:57:58 +02:00
Salanto
ee747eaac9
Raise pair list after courtroom construction (#859) 2022-08-20 14:57:38 +02:00
Crystalwarrior
b9aa2039d3
Add "edit" and "open folder" actions for dropdowns (#776)
* 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-31 13:05:09 -05:00
Crystalwarrior
dd8eee7eed
Pending ghost messages (#736)
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-31 11:33:10 -05:00
Crystalwarrior
7b88d4be95
Never send an unencoded packet to the server (#719)
* 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-30 18:42:22 +02:00
Crystalwarrior
cf91cc03f8
Add settings option for "sfx_on_idle" which allows you to play a custom SFX 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-30 14:55:58 +02:00
Crystalwarrior
d9bdb7e6bc
Fix get_effect_property ignoring the provided effect folder and using the char.ini instead. Makes it consistent with get_effect behavior (#828) 2022-07-30 14:38:37 +02:00
Crystalwarrior
f896475de4
Stop iniswapping from modifying the char.ini file (#712)
* 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-29 19:45:42 -05:00
Rosemary Witchaven
e36d79f749
Fix or suppress compiler warnings (Qt 5.15 w/MinGW) (#818)
* 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-29 18:23:36 +02:00
Crystalwarrior
7301e62c73
Fix iniswaps.ini and soundlist.ini not using vpath (#714)
Fixes #670

Co-authored-by: stonedDiscord <Tukz@gmx.de>
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2022-07-28 20:29:32 -05:00
Crystalwarrior
f40b3d162d
Code to support effects ini version 2 (#813)
* 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-27 21:43:50 +02:00
Crystalwarrior
f8c2b1a2f0
Part 2 of #713: merge get_real_suffixed_path into get_real_path (#717)
* 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-26 00:54:11 +03:00
oldmud0
0dac3cc2c0
Merge pull request #819 from AttorneyOnline/lambda-core
Make lambda captures of 'this' explicit
2022-07-23 16:31:37 -05:00
Rosemary Witchaven
0519abab03
Fix multiple issues with screenshake code (#812)
* 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-23 18:19:06 +03:00
Rosemary Witchaven
8138187f92
Change FL variable names for clarity (#810)
* Change FL variable names for clarity

* Missed one somehow

Co-authored-by: Salanto <62221668+Salanto@users.noreply.github.com>
2022-07-23 18:19:00 +03:00
Crystalwarrior
ef49b46c37
Add Emote preview (#774)
* 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-23 18:18:54 +03:00
Crystalwarrior
ad578eb0bd
Suppress application volume when alt-tabbed (#730)
* 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-23 18:18:45 +03:00
in1tiate
df7214fdb5 Make lambda captures of 'this' explicit 2022-07-19 08:10:07 -05:00
Crystalwarrior
c8914c9302
Add effect layering under the character, flippable effects and more (#701)
* 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-18 15:45:47 +03:00
Rosemary Witchaven
9849ce2610
Use QStyle to fetch checkbox size and spacing info instead of relying on 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-18 15:01:53 +03:00
Crystalwarrior
229a423e0f
Add "chatbox_always_show" courtroom_config.ini option (#725)
* 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-16 16:00:03 +02:00
Crystalwarrior
fef33dfc4f
Optimize area list slightly by recycling QTreeWidgetItems instead of 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-16 15:51:05 +02:00
Rosemary Witchaven
d056030e6c
Swap a bitwise AND for a logical AND (#809)
Didn't cause any problems here because these are both of type bool, but it's bad form anyway
2022-07-16 15:18:49 +02:00