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 quick save stack experimental feature. #441

Open
wants to merge 1 commit into
base: 1.6
Choose a base branch
from

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