Skip to content

Conversation

JamesVanBoxtel
Copy link
Contributor

Fixes #698

Various problems existed with the style system and classic endless mode and updating settings. The style wasn't updated all the time, and it wasn't preserved when opening the game again. In addition style settings could carry over to other game types.

To fix this I have made a formal GameMode class that makes sure all the derived settings are updated when settings like style update. I also added a preferred style for tracking what the user picked, similar to how stages and characters work. The other clients only know about your "style" not preferred style, and thats only derived since we don't currently send style through the server messages.

  • Convert GameMode to proper class with methods
  • Separate UI style preference from game state style setting
  • Centralize level data updates in GameMode callbacks
  • Ensure consistent settings between client and server
  • Also fixed a challenge mode JSON serialization crash by using our JSON sanitizer again.

Fixes panel-attack#698

Various problems existed with the style system and classic endless mode and updating settings.
The style wasn't updated all the time, and it wasn't preserved when opening the game again. In addition
style settings could carry over to other game types.

To fix this I have made a formal GameMode class that makes sure all the derived settings are updated when settings like style update.
I also added a preferred style for tracking what the user picked, similar to how stages and characters work.
The other clients only know about your "style" not preferred style, and thats only derived since we don't currently send style through the server messages.

  - Convert GameMode to proper class with methods
  - Separate UI style preference from game state style setting
  - Centralize level data updates in GameMode callbacks
  - Ensure consistent settings between client and server
  - Also fixed a challenge mode JSON serialization crash by using our JSON sanitizer again.
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.

Crash matching garbage, GARBAGE_HOVER nil

1 participant