Skip to content

Conversation

@CooperCorona
Copy link

Mark the type contribution you are making:

  • [x ] Experimental feature (new functionality that can be selectively enabled/disabled)
  • Bug fix (non-breaking change which fixes an issue)

Description

Add an experimental feature that lets you have multiple quick save states at once, up to a user-configurable limit. Creating a new quick save when already at the limit removes the oldest quick save (the first in the collection view).

In my experience using Delta, I want to create speculative save states a lot. But opening the menu, selecting save states, creating a save state, then returning to the game, takes a long time. In particular, playing Pokemon RomHacks, I want to create a save state before the battle. But in the middle of the battle, it's often convenient to create another save state, such as when using a risky move (don't judge me). Creating a quick save is extremely fast, but it would overwrite my save from before the battle. Quick save stacks change that.

Testing

  • iPhone 15 Pro, iOS 18.0
  • iPhone X, iOS 15.7.4

Checklist

General (All PRs)

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • I've tested my changes with different device + OS version configurations

Experimental Feature-specific

  • Added property to ExperimentalFeatures struct annotated with @Feature
  • Uses @Option's to persist all feature-related data
  • Locked all behavior changes behind ExperimentalFeatures.shared.[feature].isEnabled runtime check
  • Isolates changes to separate files as much as possible (e.g. via Swift extensions) I added a new method to SettingsViewController. Riley, let me know if you'd prefer this in its own file. I couldn't think of a more logical hook without creating a dedicated singleton.

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