- Enabled the display and installation of unnamed DLCs, as I've just discovered a case of DLC name updating without the buildid changing (Dying Light 2 - Peacekeeper 01)
- Overhauled right-click context menu icon handling
- The program will no longer get all game icons on start, and instead will load them when the game is right clicked
- Added DLC icons to the right click menu
- DLC icons in the right click menu will now display the game's icon if an icon doesn't exist for it
- Added an "Open AppInfo" button to the right click context menu
- Fixed an issue where the string "ERROR! Failed to install app '4' (Invalid platform)" was sometimes somewhere in the middle of AppInfo files, unfortunately meaning I have to bump the minimum appinfo version again
- By fixing the above issue, I also fixed certain random DLCs from being excluded
- Improved SteamCMD cleanup process
- Improved SteamCMD appinfo caching, upping the minimum appinfo version to facilitate changes
- Implemented SteamCMD process limit of 20, resulting in less CPU usage with faster and more stable appinfo gathering
- Separated appTasks into a separate list along with RunningTasks to improve stability
- Remaining games and DLCs are now first added outside of their scheduled tasks to improve visual feedback
- Added extra labels to the selection form progress section that display remaining games and DLCs, replacing the "(#/#)" text
- Fixed a harmless control invoke exception that happens when the program is closed
- Fixed a harmless bug with duplicates being included in the games to be gathered
- Minor refactoring
- Moved from VDF dynamic parsing to the more reliable method introduced in v2.2.4.1
- Fixed a bug where selections were validating prematurely
- Optimized the number of SteamCMD instances that would open for appinfo gathering processes
- Optimized the install form update delays so they're now way faster and still don't glitch the log
- Added a 10ms delay to DLC iterations to reduce control & window freezing
- Select form cancelling now runs on the proper thread to reduce cancellation delay
- Minor refactoring
- Updated HtmlAgilityPack dependency
- Replaced node right click with a beefy context menu with ICONS :O
- Small improvements to selection node display
- Fixed selections sometimes being prematurely removed
- Enabled selections will now be saved and restored after installation
- Massive refactoring and asynchronous fixes
- Disabled file operations from displaying in the install info label, and they now only display in the log
- Disabled selection validation, as previous issues warranting it have since been fixed
- Converted multiple methods to asynchronous to improve performance
- Added a minimal delay to the install form updates to keep the log from glitching
- Added double buffering to all controls to reduce flickering
- Fixed the cancel button not fully cancelling SteamCMD processes
- Internalized all possible classes, methods, accessors and fields
- Improved the aesthetics of the "Block Protected Games" help button
- Changed button, checkbox, and text FlatStyles to System for the better response effects
- Improved the node right click appId gathering
- Fixed a bug where right clicking to the right of a node's text would open the link twice
- Added gray text to the right of games and their DLC that displays their steam AppID
- Fixed exception handling for OnLoad method in selection form
- Made program selection validation more stable
- Reimplemented program selection caching with Usable boolean
- Fixed errors related to the treeNodes list by converting it into a method that gathers all nodes
- Added a "Block Protected Games" button, removing the old static anti-cheat directory detection
- Small aesthetic improvements to the selection form
- Transitioned from obsolete WebClient to HttpClient for SteamCMD downloading