- 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