-
Notifications
You must be signed in to change notification settings - Fork 125
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
Default settings changed in game not applied to local settings storage #942
Comments
@nelson137 What if we had two The thought is: The serialized one uses On load, we start by loading default, and overlay the
This might be tricky/annoying to do - but are some thoughts. |
Yeah, totally. I kept flip-flopping between that idea -- resolving mappings up front into a struct -- and the one I fleshed out more in the comment above -- resolving mappings on-demand with a helper. I like the former because accessing mappings stays easy. I think my one issue with that idea was having to maintain 2 struct definitions (even with the help of a proc macro), but I'm now realizing that making // For (de)serializing the user config
type UserConfigControlMappings = PlayerControlMapping<Maybe<InputKind>>;
// For the resolved config
type ResolvedControlMappings = PlayerControlMapping<InputKind>; (open to ideas on names lol). Luckily It sounds like we're on the same page, at least in terms of how to reconcile user mappings and their defaults, so I'll start working in that direction. |
gotcha - yeah I think the ideas are good. My only real concern is making sure that when using the mapping in gameplay code that it still feels similar / doesn't increase in complexity. I think it is sounding like that isn't a concern. Thanks for looking at this! |
Description
IWhen updating build on steamdeck, there is Ragdoll control in settings, but it is set to None. It seems that engine does not handle missing fields in settings when new ones are added. Maybe we need to differentiate specifically between missing input in stored settings and write default, and a none input that was set by player. (Explicitly set none in settings?)
Or we could have a default settings file, and user overrides, and overlay it, that way when game runs it always updates default, to make sure changes are applied correctly.
EDIT: I think the most right thing to do is probably some sort of patch function, overlay/merge could work if just adding stuff, but if renaming, wouldn't cut it.
Workaround:
EDIT: I found that we have a handy dandy reset button in settings, player can hit reset to get default controls, slightly inconvenient but ok for now.
To Reproduce
Not entirely sure - but something like install a old build of game pre-ragdoll, run it, then run ragdoll version, see if ragdoll control setting is set to default or set to none.
EDIT: Also seem to be able to delete the ragdoll lines from storage file and the reboot to simulate this.
Expected Behavior
Settings should reflect default unless overridden by user.
Additional Context
No response
Log Messages
No response
The text was updated successfully, but these errors were encountered: