Guard settings apply without a loaded game#16
Closed
Sean-Kenneth-Doherty wants to merge 2 commits into
Closed
Conversation
Author
|
Closing this under my tightened quality bar rather than leaving an unproven settings-lifecycle draft in your queue. The branch fixes a plausible main-menu settings null path and compiles locally, but the affected in-game/main-menu settings behavior was not runtime-tested in KSP. I will not reopen unless you want this exact fix or there is a concrete player-facing defect with proof. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ApplySettings()when no game is loaded so the settings-applied event cannot dereferenceHighLogic.CurrentGamefrom the main menu path reported in issue NRE when changing general settings in the main menu #2.Why
Issue #2 reports
NullReferenceExceptionfromMandatoryRCSSettings.ApplySettings()when KSP's settings screen applies changes from the main menu. In that path there is no loaded save, soHighLogic.CurrentGameis null before the method reads custom game parameters.Validation
ApplySettings()throughOnGameSettingsApplied()from the main menu settings screen.ApplySettings()goes throughHighLogic.CurrentGame.Parameters, so returning whenHighLogic.CurrentGameis null avoids only the no-save main-menu path.mcs; compile succeeded with two pre-existing unused-field warnings.git diff --check HEAD~2..HEAD -- MandatoryRCS-Source/MandatoryRCSSettings.csNotes
MandatoryRCSSettings.cs.