aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2021-06-13Use new HTTP-based master server clientoldmud0
2021-06-09Merge pull request #554 from AttorneyOnline/feature/mountingoldmud0
Add support for mounting multiple base folders
2021-06-09stupidly simple fixin1tiate
2021-06-08Clear case sensitive cache as well on vpath cache flusholdmud0
2021-06-06Merge branch 'master' into feature/mountingoldmud0
2021-06-06remember past search term when switching between area and music listin1tiate
2021-06-06Don't store key in asset lookup cacheoldmud0
2021-06-05Use intuitive behavior for loading assets with ambiguous extensionsoldmud0
2021-06-05Finish mounting featureoldmud0
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-05-29Partial: Add mount list to options dialogoldmud0
2021-05-05Add musclist streaming supportSalanto
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-04Add Asset PacketSalanto
This packet is used to send the client the URL of an online content repository, if available.
2021-04-29Merge pull request #526 from AttorneyOnline/crystalwarrior/demo-reloadoldmud0
Add a /reload command that quickly reloads the current demo
2021-04-29Merge pull request #545 from MangosArentLiterature/default-shownamesoldmud0
Add default shownames
2021-04-29Merge pull request #542 from AttorneyOnline/fix/aolayer-crapoldmud0
Fix AOLayer-related regressions, deprecate BS no one uses and return sane behavior
2021-04-28Add default shownamesMangosArentLiterature
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-24Deprecate tick_ms and use actual milliseconds rather than arbitrary 60ms ↵Crystalwarrior
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-23Add setting for default scaling methodoldmud0
2021-04-23Move other duplicate reset calls to their own methodoldmud0
2021-04-23Merge branch 'master' into crystalwarrior/demo-reloadCrystalwarrior
2021-04-23Automatically fix desynced demo files with issues pre-#496 PR (#532)Crystalwarrior
* 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-22move timer reset to its own methodin1tiate
2021-04-21Fix log_chatmessage referring to the global m_chatmessage instead of the ↵Crystalwarrior
local variables that should be sent to it at the point of the func being called. (#530)
2021-04-20Merge pull request #504 from AttorneyOnline/fix/css-lagoldmud0
Fix character select screen lag/performance overhead
2021-04-20don't set a mask on elements affected by offsets (#524)in1tiate
2021-03-24Version bump aoapplication.holdmud0
2021-03-24Remove useless code for extra ui_selector that is not usedCrystalwarrior
2021-03-24Mark ui_selector, ui_passworded, ui_taken for evidence and character select ↵Crystalwarrior
as static-only due to massice performance overhead for no substantial benefit
2021-03-22Fix chat messages being lost to the Ether if instant objection was used, or ↵Crystalwarrior
you switched an area during queue being parsed. (Your IC logs will be caught up to speed instead)
2021-03-20Add timer packets to demo playback (#494)Crystalwarrior
When the demo skips by some number of seconds, the timer will also skip forward by that duration. Co-authored-by: in1tiate <32779090+in1tiate@users.noreply.github.com> Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-03-20Deprecate demo playback /min_wait (#498)Crystalwarrior
2021-03-15Deprecate hardcoded string-based authentication, add AUTH packet (#489)in1tiate
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-03-07Fix timer using 32-bit ints instead of 64-bit ints (#487)oldmud0
2021-02-24Make "stop music on objection" work in tandem with the server by calling ↵Crystalwarrior
"music_stop()" instead of only working on the client-side
2021-02-21Remove hardcoded stylesheets from lobbyCrystalwarrior
Stop doing the "tagget stylesheets" monstrosity
2021-02-21Remove background-color stylesheet from the set_qfont (allowing stylesheets ↵Crystalwarrior
to properly initialize custom backgrounds for labels w/ transparent ones) rename "set_dropdown_ to "set_stylesheet" cuz that's what it is
2021-02-19Overhaul pos dropdown and pos remove system to work well with custom pos, ↵Crystalwarrior
char pos etc. Remove accidental duplicate code Fix some genius using & instead of && (SMH) Block pos_dropdown signals better
2021-02-17Adopt better method for setting custom pos using the pos dropdownCrystalwarrior
Make it actually work properly
2021-02-17Make the server list display all pretty and niceCrystalwarrior
Resize the 0thcolumn to smallest possible size so it's not intrusive Remove text eliding so numbers don't get ...'s
2021-02-17Revert bad "fix" of the sound names for WTCE courtroom_sounds.iniCrystalwarrior
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-16Stop supporting the DRO way (we will make a .bat file or utility that does ↵Crystalwarrior
it for you automatically instead!) Add an option to enable/disable stickers Make stickers actually respect the custom chatbox setting properly
2021-02-16Patch a segfault by play_frame_effect being wackyCrystalwarrior
Split behavior for courtroom resizing into its own function Use that function to optimize character changing screen Fix reload theme breaking the background positioning Fix changing character breaking the background positioning Fix excessive set_widgets() calls that caused unnecessary lag Fix unnecessary set_size_and_pos calls that didn't need to be there Only call size_and_pos on the chatbox in the initialize_chatbox func Remove checks for a boolean that will always be true Simplify two functions that copy-paste code called set_size_and_pos into a single one Fix "disable custom chat" setting not being used when setting chat sizes and pos
2021-02-14fix bg not resizing on reload themein1tiate
2021-02-13fix borked chatbox themesin1tiate
2021-02-13Animated Themes. Subthemes. Custom default_theme. Overhaul asset paths. Fix ↵Crystalwarrior
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-11Update the Settings screen - reload theme, restore defaults (#463)Crystalwarrior
* Add a Reload Theme button to the settings screen (works with both lobby and courtroom) * Move all value updates on elements to "update_values" func in the settings screen Add a "restore to defaults" option that allows you to restore all the configuration to its default values. Set up a .temp settings file that allows you to undo the effects of restoring default options. * wtf why didn't this error
2021-02-09Fix expanded_desk_mods (2-5) being nonfunctional (#451)in1tiate
Also fix backgrounds appearing off to the left if they are less wide than the viewport. i am in agony Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-02-08Merge pull request #455 from AttorneyOnline/fix/speedmaxoldmud0
Make instant text instant again
2021-02-09make instant text instant againCrystalwarrior
2021-02-09Fix backwards compatibility with the stopmusicCrystalwarrior
Hide ~stop.mp3 and the stop category Add an option to make it so when you double-click a category, it expands/collapses it without sending the stop-music command Make right click stop music backwards compatible