Commit Graph

78 Commits

Author SHA1 Message Date
stonedDiscord
f55cbe543b
move themes into bin folder (#849)
* as if this is going to work

* use android libs and spec for android

* install ndk and use clang over g++

* shut the fuck up

* SHUT THE FUCK UP

* shut up shut up shut up

* get remove from favs button

* move themes into bin folder

* bin folder now already comes with repo

* actually install old ndk version

* Delete .gitlab-ci.yml

* apply font for version
2022-08-14 23:16:55 +02:00
dyviacat
7d395b4a33
Let's try that again. This time, less stupid. (#838)
* Let's try that again. This time, less stupid.

Made the updated licensing from 2021 to 2022 and new credits and whatnot.

* executive meddling

* Update credits.

Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
Co-authored-by: Salanto <62221668+Salanto@users.noreply.github.com>
2022-08-01 17:40:10 +03:00
Leifa♥
1cfbfd51a7
Added server list context menu, ... (#835)
* Added server list context menu, ...

Resolve #832, #560

* The demo server listing now always appears at the top for consistency.

* Add a context menu to server listing.
Only appears during favorite server listing. Requires a valid item under cursor. Cannot be the demo server item.

* Add a new UI element: `remove_from_fav`
Only appears during favorite server listing. Require a selection to remove. Cannot be the demo server.

Uses `removefromfav.png` and `removefromfav_pressed.png` images as textures.

* Favorite servers are now loaded whenever the Lobby is created in addition to refresh and server listing switch.

* `serverlist.txt` is now renamed to `(deprecated)serverlist.txt` if read from.

* Updated comments

* Typos
2022-07-31 05:57:01 +03: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
834c5ff929
Fix lobby force-switching you from Favorites list if you switched from the Serverlist before it was populated (#826) 2022-07-29 18:40:02 +03:00
Rosemary Witchaven
a545561343
Clear selection when switching between favorites and public servers (#763)
Co-authored-by: in1tiate <radwoodward@vikings.grayson.edu>
2022-06-06 19:31:18 +02:00
stonedDiscord
d87371b65e
GitHub android ci (#767)
* try this matrix thing

* syntax error

* use my own qt installer so it actually works

* allow changing path

* whoops cant have it twice

* get the right version of discord rpc

* get correct bass

* try to fix windows

* overwrite bass files

* forgot to delete these

* here's your version bro

* what did we even use catch2 for??

* linux doesnt have a c folder

* android bass

* switch from cmake to qmake

* opus dylib

* we don't install

* put bass in a subfolder so we don't build the stupid examples

* was using wrong arch for android

* fix up gitignore

* get correct artifact folder

* lets hope qmake will ignore the ABI for all the other platforms

* use platform name for artifact

* copy dlls into bin folder

* lmao i yeeted the folder

* create folder

* use more recent mingw

* windows uses dlls

* 2017 doesn't work

* our libs are 64 bit

* install msvc

* shitty ms documentation

* ok ms

* wrong directory for deploy

* copy apng

* use correct image for msvc2019

* deploy android

* 32bit windows it is

* adroideploy

* try this

* Update build.yml

* move libs

* armeabi-v7a

* fix android build files

* only get linux bass for linux

* don't try to install discord on android

* deploy mac

* get rid of double permission warning

* define filename for APK

* add mac dependencies

* put android bass in the correct folder

* mac apng

* android apng

* remove old CI

* ask for storage permissions

* qt bug ..........

* update clang-tidy-review

* update everything

* fuck you lukka

* fuck you jurplel for merging that shitty PR that broke everything

* give it what it wants

* Update clang-tidy-review.yml

* github is failing it because it's too big

* wait for the user and request a proper permission string

* underscore moment

* use write external storage instead

* try this instead

* 082 fails with docker again
2022-05-24 21:16:04 +02:00
Salanto
b69f9f17f4
Load serverlist.txt with UTF-8 Coded (#741)
Fixes #738
The values are correctly written, so this should fix it.
2022-04-05 21:35:09 +03:00
Salanto
e6f06d8959
Add server description to favourites, if supported by server. (#648)
* Allow servers to directly set the server description

* Hijack PN packet to add description.

* Update lobby.cpp

Apply suggested change
2022-02-15 08:15:57 -06:00
oldmud0
c80a019574
Merge pull request #619 from AttorneyOnline/feature/http-ms
Switch to HTTP-based server list
2022-01-07 20:17:02 -06:00
oldmud0
7b4d1e96c6 Disambiguate settings with lobby_settings and courtroom_settings 2021-12-31 10:40:21 -06:00
oldmud0
8822db8e82 Remove lobby chat
Goodbye, lobby chat :(
2021-12-30 21:46:24 -06:00
oldmud0
6e1e847750
Add and refine debug log messages (#625)
Since these are going to be visible to the user now, at least let's properly format them and make them somewhat helpful.
2021-12-30 20:44:59 -06:00
oldmud0
ee76c2ce61 Merge branch 'master' into feature/http-ms
# Conflicts:
#	src/networkmanager.cpp
2021-12-30 20:31:44 -06:00
oldmud0
ecfe6f2542 Change master chat in courtroom to debug log
Since the MS chat has been disabled for quite some time now (and we aren't planning on bringing it back since Discord, Guilded etc. have better chat features), I decided to go ahead and change the pane into a debug log to keep it useful and avoid creating a gaping hole in themes.

Though, maybe it is worth removing the whole switcher and keeping the debug log hidden away where it can't scare people.
2021-12-25 19:17:27 -06:00
Pyraqq
26851be536
Add version to window title (#613)
Also updated the translation files for missing strings and updated the Polish translation.
2021-12-23 16:53:26 -06:00
oldmud0
b0e9f8dbe5 Merge branch 'master' into feature/http-ms 2021-12-18 22:34:04 -06:00
oldmud0
cf12168ebd Qt 5.9 compat; remove dead code 2021-12-18 22:22:30 -06:00
oldmud0
d137022174 Remove another markdown thing 2021-12-18 22:02:30 -06:00
Salanto
bc49b3e976 Update slots/signals to Qt5 connection style and eliminate some clazy warnings 2021-12-11 02:09:27 +01:00
oldmud0
b682d69e49 Use new HTTP-based master server client 2021-06-13 22:16:41 -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
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
679dcca079 Remove hardcoded stylesheets from lobby
Stop doing the "tagget stylesheets" monstrosity
2021-02-21 16:18:45 +03:00
Crystalwarrior
f881df2415 Make the server list display all pretty and nice
Resize the 0thcolumn to smallest possible size so it's not intrusive
Remove text eliding so numbers don't get ...'s
2021-02-17 15:29:18 +03:00
Crystalwarrior
b5f581eb5b Revert bad "fix" of the sound names for WTCE courtroom_sounds.ini
Make pos dropdown ui editable for a custom pos
Keep track of the custom pos index
On switching from the custom pos, remove the entry at that index
Fix regression causing the "sort by name" lobby server list header disappearing
Expose column 0 for the # in the lobby server list header
("too ugly" just use lobby_stylesheets.css and pretty it up)
2021-02-17 15:15:40 +03:00
Crystalwarrior
fe00c6b7de
Animated Themes. Subthemes. Custom default_theme. Overhaul asset paths. Fix a ton of asset resolution bugs. (#466)
* Remove get_static_image_suffix (webp, gif etc. can be non-animated)
Replace QList<QString> with QStringList

* forgot to remove static image from aoimage

* Simplify get_theme_path, get_custom_theme_path and get_default_theme_path all into a single get_theme_path func
Add a default_theme variable which defines the currently recognized default theme
Add a new "get_asset_path" that will be used to simplify asset resolution considerably

* Simplify AOImage set_image function to use get_asset_path
Begin working on the subtheme system

* Add p_default_theme for get_asset_path
Implement get_asset_path for AOButton

* Condense aolayer path lookups into the get_asset_path function

* Get rid of get_font_name due to underuse (and it just does the same thing as get_design_element anyway)
Get rid of get_char_shouts (use chat= instead)
Use get_subtheme() instead of subtheme (because get_subtheme() can perform overrides based on the user's settings)
Make get_color() use get_asset_path()
Make get_design_element() use get_asset_path()

* Adapt a whole bunch of text_file_functions to the get_asset_path method, fixing an enormous amount of invalid path resolutions
Unfortunately I have to keep backwards compatibility for the backwards ass config.ini method for the chat markup (new way is chat_config.ini)
Get rid of get_theme_effects and implement the stacking behavior into get_effects instead

* Program doesn't run, color lists stop generating for some reason
Also implement safety checks for the asset path generator

* Fix a really tricky issue that popped up regarding char_color_rgb_list not being generated, causing segfaults

* Address the sfx player path resolution being really, really stupid and resolve major inconsistencies (such as the bug where objection sfx wouldn't be playing despite the default theme or default misc folder having them)

* Fix sfx path resolution being funky (apparently D:/Qt/Projects/AO2-Client/bin/base/themes/default//objection.wav is a valid qt5 path...)

* Implement:
get_asset_paths - Return an untested list of universal paths from the provided args
get_asset_path - Loop through the list of provided asset paths and return the first valid file
get_image_path - Loop through the list of provided asset paths, apply get_image_suffix and return the first valid image file
get_sfx_path - Loop through the list of provided asset paths, apply get_sfx_suffix and return the first valid sound file
get_asset - return an asset (must contain file extension) from the get_asset_path() applied on the get_asset_paths()
get_image - return an image with get_image_suffix() applied on the get_image_path() for the get_asset_paths()
get_sfx - return a sfx from provided args with the uniquely constructed asset path list for sounds

Rename old get_sfx to get_court_sfx for better clarity of its function
This replaces previous asset stuff I implemented, as I think this is a better solution lol

* Add a new get_config_value that obtains a value from the config that matches identifier
Adjust all calls to get_asset() to actually look for a config identifier value instead, so even if a config.ini is found if it doesn't contain the identifier we want we keep looking

* Fix effects.ini sounds not working
Remove debug text

* Make it so even if you miss the required asset, and don't have a missingno, the viewport still doesn't freeze up due to waiting on Objections etc. due to signals.

* Implement default_theme option for courtroom_design.ini, allowing you to make themes that inherit from other themes that are not default.

* move sounds folder lower in sfx pathlist

* fix realization sfx not being fetched from config

* Make aosfxplayer actually use get_sfx I made
Move sounds folder path check last in get_sfx

* I thought this would fix QSettings::value: Empty key passed but I guess not, that annoying error will keep pestering us :(((

* Remove silly .png exception for SplashLayer
Fix static image Objections freezing the viewport due to done(); signal that never arrives

* Make WTCE cooler by including a stop method for witness testimony indicator, and add support for custom WTCE

* Reduce code duplication for get_sfx

* Fix the program hanging/entering an infinite loop/segfaults/a number of nasty issues due to done(); signal being sent as soon as playback begins if the image is invalid.
This is done by removing the file_exists check, and letting the rest of the functionality handle this case - the system is robust enough and treats an invalid image as a static image.

* Fix segfaults with AOLayers by sanity checking using max_frames
Fix "Pixmap is null" console spam

* You'll hate me for this.
Make it possible to have fully animated AOButton and AOImage

* Add a settings option to toggle animated themes on or off

* Add a setting for animated theme elements
Add a "static image" toggle for get_image_suffix

* Fix custom chat and generally the chat boxes not having consistent behaivor with subthemes
Add a settings option for subthemes
Have AOImage keep track of its last valid path

* Add SubTheme (ST) packet. Pass subtheme as arg0, and "1" if you want the client's theme to be reloaded.
ST packet sets ao_app->subtheme no matter what. It will not reload theme unless the user has their subtheme set to "server".
Fix showname widths by rearranging font metrics to do its calculations *after* the showname font is set, and not before (making it lag behind the correct display size by 1 msg)

Co-authored-by: in1tiate <radwoodward@vikings.grayson.edu>
2021-02-13 11:52:12 +03:00
oldmud0
0bb8574d79
Merge pull request #420 from AttorneyOnline/version-bump
Version bump
2021-01-19 10:15:54 -06:00
in1tiate
d41ec17fe7
Add a new "char_list" QTreeWidget that allows for categorizing characters (#399)
* initial commit

* use a "category" value instead

* add filtering and taken indicator

* hide serverlist header

* set the items to disabled in place of the [X] text

Co-authored-by: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
2021-01-18 23:10:45 +03:00
Crystalwarrior
2f84055af9
[2.8.6] Demo Recording/Playback (#337)
* initial commit with horrible code dupcliation haha lol
Set up elapsedtimer to generate wait# stuff between packets recorded

* implement groundwork for internal demo server

* add core playback functionality

* make it work kinda by including SC packet in demo

* Add a file dialog for loading a demo file instead of a hardcoded path

* Change /play to > in OOC to begin playback or skip to next element
Pop up file dialog box *before* establishing the connection, not after.
TODO:
* Fix having to load the same file *twice* to be able to connect to the demo server for some reason
* Fix the segfault caused by calling the playback() function when there's no remaining data, it's almost like demo_data.isEmpty() is ignored for whatever reason???

* Clear demo data when loading a demo file to prevent stacking demos

* Properly disconnect the client when sending the request for file browser fails to obtain a good demo file

* Fix append_to_file newlining even if file didn't exist prior to calling this function

* Add a very scuffed exception to not log or demo record anything that happens in the Demo playback local server

* Reduce invalid file spam by checking for non-logging server better
Use file_exists() to be more consistent in append_to_file

* Fix the client crashing when receiving loading packets etc. at runtime such as SC, SM, CI etc. (TODO: parity???)
Remove useless debug stuff

* Preserve newlines for demo packets such as "CT", "MS" etc.

* Implement /max_wait, /min_wait for adjusting the maximum and minimum wait in milliseconds between wait packets
Add /pause or | shorthand to pause playback
Re-add /play and keep > as a shorthand
Remove clientside restrictions from sending empty OOC messages and sending OOC messages without a name - these should be serverside.

* Empty music list
Default the character to Spectator char no matter the selection in CSS

* Allow -1 character ID or character ID that does not fit into the local Character Select Screen list to still be parsed corectly, using the character folder in the MS packet as reference.
Allow servers with no selectable characters to still be properly loaded
Bypass the Character Select Screen when joining a server with no character select screen and automatically become a spectator

* Properly handle demo files without SC packet to dictate which chars exist
Add a /load command letting you load a demo file without rejoining the demo server (the CS packet will not be properly handled but I cannot think of a single tangible problem this causes lol)
Make sure all DEMO CT messages are colored properly

* Fix logs bleeding into each other if you disabled logging or you joined a demo server after leaving another

* Prevent logging even if log_filename is defined because a user might disable auto logging when running the game

* Fix custom shownames not appearing in the IC logs

* Set up new logic for max_wait, meaning that dead air being skipped is prioritized with MS (IC chat) packets being used as the anchor.

* Better logic for min_wait to only affect important packets (IC Chat)

* Fix encoding not being performed on packets that are saved to the .demo file, resulting in characters having something like "#1" in their message breaking that specific message

* Fix a weird setup in courtroom.cpp that happened out of the merge and bugged the code
Fix aopacket being busted up as well

* add missing feature flags to the demoserver

* use random port

* move writing to the demo file to a function

* only listen on localhost

Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>

* remove copypasta

* add a help to the demo server

* fix empty demo disconnecting the server

* tell the user how to begin

Co-authored-by: scatterflower <marisaposs@gameboyprinter.moe>
Co-authored-by: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
Co-authored-by: stonedDiscord <stoned@derpymail.org>
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-01-13 22:25:24 +01:00
oldmud0
425c17a42b Update credits 2021-01-11 19:02:12 -06:00
oldmud0
4c3c2ffaac Remove raidensnake from credits per request
Who knows what's up with him.
2021-01-11 18:44:11 -06:00
Skye Deving
05dd086fff
Fix segfault in server list without a server selection (#374)
Also bumps C++ version to C++17 (C++1z).
2021-01-09 11:59:51 -06:00
Skye Deving
cb19f55a06 Checking for apng should be lower case 2021-01-06 00:59:22 -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
stonedDiscord
2dbedf5163 stop them from dragging the lobby 2020-11-05 23:27:58 +01:00
stonedDiscord
c49ce181c9 set no maximize flag on lobby 2020-11-05 23:17:15 +01:00
scatterflower
f91fc5739c fix doubleclick server being buggy 2020-10-04 01:41:23 -05: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
windrammer
37520f9318
Fix connect button issue when using favorites list (#206)
Co-authored-by: Cents02 <Cents02@Cents0.me>
2020-07-27 12:08:14 -05:00
Crystalwarrior
e84426ae8d Credits corrected for CrazyJC and MaximumVolty involvement in 2.8 2020-07-24 18:39:22 +03:00
oldmud0
5cd9da3706 Credit some more people
Not sure how to split this up, frankly. Some people have been more
involved in client/server/protocol development than others. I'll figure
this out eventually.
2020-07-03 09:58:03 -05:00
oldmud0
35b9c834e2 Lobby: Fix incorrect sorted server list 2020-06-10 14:33:10 -05:00
oldmud0
f13635b5cd Update credits again
- Alphabetized QA section
- Added MaximumVolty
- Added court-records.net
- Renamed Unishred to Lewdton
2020-06-10 14:33:10 -05:00
oldmud0
e0fb90984c Update about dialog
- Credited FanatSors
- Added Qt version, audio engine, and build date
2020-06-06 23:20:32 -05:00
oldmud0
8e106c5d21 Fix server list showing in reverse order 2020-05-31 17:08:01 -05:00
oldmud0
6dde524a16 Lobby: Change "font_*" config entry to "*_font" 2020-05-31 17:07:35 -05:00
sD
e7ec42f977 undo branding 2020-05-23 18:41:27 +02:00
sD
ba9aebec57 translate stuff that got run over 2020-05-23 18:32:05 +02:00
oldmud0
fd1855b8d0 Merge KFO source unconditionally into AO2 2020-05-22 19:17:55 -05:00