- Converted the program from using CreamAPI to SmokeAPI (it's recommended to uninstall CreamAPI with v3.4 of this program before updating, but not required)
- Removed RimWorld from excluded games (it should work fine with SmokeAPI)
- Attempted fix for SteamCMD string exception
- Attempted fix for weird ExceptionHandler behavior
- Fixed weird "Block Protected Games" checkbox sizing for other languages
- Minor refactoring
- Steam games now wait on store api queries, so no DLC will ever be missed from the steam store now
- Steam DLC store queries will now only be performed after ALL Steam games have completed their respective store queries, to make sure the steam store api limit isn't hit before all games have queried successfully
- Added more files to SteamCMD cleanup
- Added a save and load feature to the new pre-scan choices dialog
- Re-enabled ReadyToRun compilation
- Moved the program to 64-bit
- Added Notepad++ support, so the program opens query files with it if it exists
- Cancelling the pre-scan choices dialog now cancels scanning
- The pre-scan choices dialog now doesn't show at all if no installed games are found on the system
- Fixed the installation form cancel button
- Selection form now no longer scans at unnecessary locations (e.g. after installation form re-select)
- Large code refactoring
- Minor refactoring
- Querying cooldown is now written to and read from ProgramData so it can be persistent and hopefully steam's API limit is reached a little less often
- Increased steam game info querying cooldown to 600 seconds (10 minutes) and steam DLC info querying cooldown to 1200 seconds (20 minutes)
- Introduced a 600 second (10 minute) cooldown for Epic game queries using the same system above
- Added a per-game 10 second cooldown and per-DLC 60 second cooldown between store queries to help prevent steam from thinking they're getting DDoSed (lol)
- Optimized selection form node updating
- Large code refactoring and optimizations
- The more essential SteamCMD directories (config and userdata) will no longer be cleaned up by the program, hopefully to speed up the first call
- Games can now also use SteamCMD as a fallback similar to DLC (previously both steam store AND steamCMD output was required for games, now it's either OR)
- Converted steam store page parsing into actual steam store API calls
- Substantially increased the speed of gathering app information, as DLC gathering will now attempt to use the steam store API system to gather information, only reverting back to SteamCMD if it was unsuccessful (if the DLC isn't on the steam store)
- Program will now try to utilize cached Epic Store info if the web request fails
- Reverted the maximum SteamCMD processes to 20
- Fixed a rare concurrency issue with the new SteamCMD method
- Improved the used images and icons for the context menu
- Added the "Open in SteamDB" context menu option for Steam DLC
- Overhauled SteamCMD appinfo gathering, with substantially increased speed
- Increased maximum SteamCMD processes from 20 to 30
- The gathering progress is now based on only games, so no more progress decreasing
- Overhauled and made OnTreeViewNodeCheckedChanged method more stable
- Made node sub-text display more specific to only game and dlc ids
- Fixed program validating tree nodes based on the pre-Epic-support id system
- Overhauled Epic Games entitlement querying and parsing
- Added back ScreamAPI entitlement selection, with preparations to add catalog item selection
- More code refactoring and simplifications
- Converted ScreamAPI config creation into unlock_all for now until I can figure out how to properly get ALL dlc ids (some games worked, some didn't)
- 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
- The cancel button during program selection will now cancel scanning instead of closing the form
- Added a rescan button to the program selection form
- Fixed tabbing on the install form
- Fixed accuracy of program selections list
- Fixed unhandled exception when Paradox Launcher is not installed.
- Added better exception handling and file backups during installation.
- Added an explanation for when no CreamAPI-applicable programs or games are found.
- Increased the minimum size of the installation window.
- Added program/game reselection from the installation window.
- Added error dialogs for when selected programs are currently running.
- Multiple other aesthetic changes.
Multiple aesthetic changes
Added extra warnings
Fixed tabbing
Fixed cleanup when canceling download/installation
Removed automatic focusing on buttons
Fixed cancel button closing entire program during download/installation
Removed unnecessary download progress clutter from the log