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

Improve Lua auto splitting runtime #56

Draft
wants to merge 16 commits into
base: main
Choose a base branch
from
Draft

Improve Lua auto splitting runtime #56

wants to merge 16 commits into from

Conversation

wins1ey
Copy link
Owner

@wins1ey wins1ey commented Jun 5, 2024

This PR makes breaking changes to current auto splitters

Functions inside the Lua auto splitters will only run when needed, the same as LiveSplits ASL auto splitters documented here.

Added support for onSplit, onStart and onReset functions to run when split, start and reset return true in the auto splitter.

The game process will now be defined by process = 'name' inside the startup function, instead of calling process('name') at the start of the script.

TODO:

  • Add documentation

wins1ey added 5 commits June 5, 2024 15:23
Also refactored some of the other functions and removed unneeded ones.
Define `process = "{game_name}"` in startup instead of calling
`process()` at the top of the auto splitter.

The auto splitter script will now keep running if the game is closed and
will try and find the new game process before continuing, instead of
running the entire script again from the start.
wins1ey added 10 commits June 5, 2024 21:47
This stops the user from calling any function, for e.g. 'print', outside
of the functions stated in the documentation
It now allows for it to be formatted like

state = {
    ["AmidEvil-Win64-Shipping"] = {
        Start = { 'byte', 0x2BAFFD0 },
        Loading = { 'byte', 0x2E76B0C },
        MenuStage = { 'byte', 0x2F75F14 },
        Paused = { 'byte', 0x2B95A68 },

        ["Steam"] = {
            Start = { 'byte', 0x2BB3470 },
            Loading = { 'byte', 0x2B7DDD4 },
            MenuStage = { 'byte', 0x2F79424 },
            Paused = { 'byte', 0x2B98F08 }
        }
    }
}

This allows you to set values for when no version is defined, alongside
ones for specific versions
…litters

Functions such as 'split' must now be 'Split'
Variables such as 'refreshRate' must now be 'RefreshRate'
The 'state' table must now be 'State'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant