UndertaleModTool
UndertaleModTool copied to clipboard
Add differentiation between LTS and non-LTS builds
Description
After the end of October 2022, the GameMaker versions were split into two: LTS and non-LTS. This marked the beginning of the era called "UndertaleModTool breaking for the 400th time".
This PR adds a Branch enum value to GeneralInfo which can be used to differentiate between these versions without causing confusion with UndertaleData.IsVersionAtLeast() (as actually setting the version to 2022.0 would indicate being much older than many of the features therein). It also adds some methods to interact with this, one being UndertaleData.IsNonLTSVersionAtLeast(), and implements its usage in regards to Particle Systems and Spine Sprites, both of which are not present on the current LTS despite other fixes. Closes #1703, closes #1729.
Caveats
Using an enum is theoretically extensible for other branches, but that seems improbable. More likely we'll just get 2024.0 and have to adjust around that; mostly I just don't want to go back to version booleans. The UndertaleData.SetLTS() method is also weird (boolean input), and this all renders the estimated version in the window title completely off. Oh, and it can't be set through the GUI.
Notes
Due to all the caveats (and wanting further input on how to resolve them), I'm marking this as draft.
Download the artifacts for this pull request here:
GUI:
- GUI-windows-latest-isBundled-false-isSingleFile-true
- GUI-windows-latest-isBundled-false-isSingleFile-false
CLI:
Great, it works
THIS GIT WORKS WITH THE LATEST ANTON BLAST DEMO!!!
W pull request