- Fixed all check box not getting automatically checked when unknown DLC were present
- Added a save & load feature for DLC selections
- Added a button to reset DLC selections to default
- Optimized koaloader proxy saving & loading
- Added a button to reset koaloader proxies to default
- Minor refactoring
- Improved the responsiveness and performance of the program
- Fixed the changelog tree view garbling when clicking update
- Dialog forms no longer clutter the taskbar
- Added a debug form (this is really just for me)
- Fixed rescan lag caused by keeping nodes
- Minor refactoring
- Executable bitness is now detected automatically per-directory (prioritizing 64-bit before 32-bit)
- Executables which or not 32-bit nor 64-bit are now omitted
- Saved pre-v4.1.0.0 proxy choices will be automatically converted to the new format ("Koaloader.version_64.version.dll" -> "version")
- Executable directories' determined bitness can be visualized with the context menu (or during installation)
- Fixed pre-scan dialog "Sort By Name" function
- Added the "Sort By Name" function to the main selection form
- Small rearrangements and resizes in the main selection form
- More minor refactoring
- Selections are now properly separated by platform, fixing potential future issues related to two games on different platforms having the same id
- Saved pre-scan choices now have to be saved in JSON, and thus will be reset
- Selection nodes now display their platform and are now also sorted by their platform
- Right-click context menu favicons are now grabbed via Google's favicons API
- Official program/game websites are now openable via the right-click context menu should the Steam Store provide one
- Attempted fix for SteamCMD string exception
- Attempted fix for weird ExceptionHandler behavior
- Fixed weird "Block Protected Games" checkbox sizing for other languages
- 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
- 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
- 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)