Skip to content
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

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

Jacky720
Copy link
Contributor

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.

Copy link

github-actions bot commented Apr 22, 2024

Download the artifacts for this pull request here:

GUI:

CLI:

@gulup
Copy link

gulup commented Apr 23, 2024

Great, it works

@PhantomSlash64
Copy link

THIS GIT WORKS WITH THE LATEST ANTON BLAST DEMO!!!

@lucasdaweb95
Copy link

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;
Copy link
Contributor

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?

Copy link
Contributor Author

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.

Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants