-
Notifications
You must be signed in to change notification settings - Fork 204
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add differentiation between LTS and non-LTS builds #1737
base: master
Are you sure you want to change the base?
Conversation
Download the artifacts for this pull request here: GUI:
CLI: |
Great, it works |
THIS GIT WORKS WITH THE LATEST ANTON BLAST DEMO!!! |
W pull request |
/// <summary> | ||
/// The GameMaker release branch of the data file. May be set to "NonLTS" when features exempted from LTS are detected. | ||
/// </summary> | ||
public BranchType Branch = BranchType.LTS; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
any reason why we have lts as default instead of nonlts?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Non-LTS is detected when we find a feature that isn't present on LTS, and there's no point setting the default to "LTS if it's at least the earliest version for which LTS exists" because there are no checks for LTS-ness on older versions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm, IMO it just comes off as confusing if i load a game that was made before lts existed and it shows as LTS.
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 beingUndertaleData.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.