-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Animated Themes. Subthemes. Custom default_theme. Overhaul asset paths. Fix a ton of asset resolution bugs. #466
Conversation
Replace QList<QString> with QStringList
…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
Begin working on the subtheme system
Implement get_asset_path for AOButton
…hing 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()
…od, 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
Also implement safety checks for the asset path generator
…t not being generated, causing segfaults
…d resolve major inconsistencies (such as the bug where objection sfx wouldn't be playing despite the default theme or default misc folder having them)
…ient/bin/base/themes/default//objection.wav is a valid qt5 path...)
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
…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
Remove debug text
…ingno, the viewport still doesn't freeze up due to waiting on Objections etc. due to signals.
… to make themes that inherit from other themes that are not default.
I will implement the subthemes in a separate PR. This PR is done but requires review and testing, especially since it overhauls the asset resolution system and introduces |
Move sounds folder path check last in get_sfx
…ss not, that annoying error will keep pestering us :(((
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
poggers
Fix static image Objections freezing the viewport due to done(); signal that never arrives
…icator, and add support for custom WTCE
…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 "Pixmap is null" console spam
Make it possible to have fully animated AOButton and AOImage
Add a "static image" toggle for get_image_suffix
…haivor with subthemes Add a settings option for subthemes Have AOImage keep track of its last valid path
…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)
@@ -7,6 +7,7 @@ | |||
|
|||
#include <QDebug> | |||
#include <QLabel> | |||
#include <QMovie> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cursed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, but needs documentation.
I suck at documentation :(((( |
This overhauls the asset/path resolution of AO2, making it much nicer and make a lot more sense. Most importantly, it drastically reduces code duplication, causing less inconsistencies and fixes a metric crapton of bugs related to that.
NEEDS TESTING!
Closes #427
New asset resolution functions: