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

Recreate GameState from scratch when starting a scenario #1277

Merged
merged 14 commits into from May 25, 2023

Conversation

byorgey
Copy link
Member

@byorgey byorgey commented May 22, 2023

All info that needs to be persistent (e.g. the set of standard/default entities and recipes) is now stored in the RuntimeState. The GameState record is now recreated completely from scratch every time upon starting a new scenario, so custom entities and recipes from the previous scenario do not persist into the next.

Fixes #516. Fixes #689.

Also a bunch of related refactoring/simplification relating to how we were initializing state for tests and benchmarks.

I also want to refactor the tests so we only load data from disk once, but I have split that out into a separate issue (#1279).

Co-authored-by: Restyled.io <commits@restyled.io>
Co-authored-by: Restyled.io <commits@restyled.io>
@byorgey
Copy link
Member Author

byorgey commented May 24, 2023

@kostmo I always forget about the benchmarks. 🤦 Should be ready for you to take a look now!

Copy link
Member

@kostmo kostmo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@byorgey byorgey added the merge me Trigger the merge process of the Pull request. label May 25, 2023
@mergify mergify bot merged commit a2cd731 into main May 25, 2023
9 checks passed
@mergify mergify bot deleted the ephemeral-gamestate-2 branch May 25, 2023 11:24
mergify bot pushed a commit that referenced this pull request Jun 5, 2023
I believe that since #1277 the progress has not been saved when exiting a scenario back to the menu.

It is because `getNormalizedCurrentScenarioPath`, which is utilized by `saveScenarioInfoOnQuit`, was returning `Nothing`, in turn because `currentScenarioPath` was `Nothing`.  This is because `scenarioToAppState` was clearing it immediately after being set inside `startGameWithSeed`.

Foreshadowed by this comment: #1243 (review) .
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merge me Trigger the merge process of the Pull request.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Custom entities persist when quitting scenario Fix scenario loading to game state
2 participants