Fix default system override #687

This commit is contained in:
Nick 2023-08-10 00:54:31 -04:00
parent 0bcaa3f7ef
commit 7a5630bc0e

View File

@ -116,12 +116,12 @@ namespace NewHorizons
else if (Debug) NHLogger.UpdateLogLevel(NHLogger.LogType.Log); else if (Debug) NHLogger.UpdateLogLevel(NHLogger.LogType.Log);
else NHLogger.UpdateLogLevel(NHLogger.LogType.Error); else NHLogger.UpdateLogLevel(NHLogger.LogType.Error);
var oldDefaultSystemOverride = _defaultSystemOverride;
_defaultSystemOverride = config.GetSettingsValue<string>("Default System Override"); _defaultSystemOverride = config.GetSettingsValue<string>("Default System Override");
if (oldDefaultSystemOverride != _defaultSystemOverride)
// Else it doesn't get set idk
if (currentScene == "TitleScreen" && SystemDict.ContainsKey(_defaultSystemOverride))
{ {
_currentStarSystem = _defaultSystemOverride; ResetCurrentStarSystem();
NHLogger.Log($"Changed default star system override to {_defaultSystemOverride}");
} }
var wasUsingCustomTitleScreen = _useCustomTitleScreen; var wasUsingCustomTitleScreen = _useCustomTitleScreen;
@ -553,17 +553,7 @@ namespace NewHorizons
} }
else else
{ {
// Reset back to original solar system after going to main menu. ResetCurrentStarSystem();
// If the override is a valid system then we go there
if (SystemDict.ContainsKey(_defaultSystemOverride))
{
_currentStarSystem = _defaultSystemOverride;
IsWarpingFromShip = true; // always do this else sometimes the spawn gets messed up
}
else
{
_currentStarSystem = _defaultStarSystem;
}
} }
} }
@ -614,7 +604,7 @@ namespace NewHorizons
if (starSystemName != "SolarSystem") if (starSystemName != "SolarSystem")
{ {
SetDefaultSystem(starSystemName); SetDefaultSystem(starSystemName);
_currentStarSystem = starSystemName; _currentStarSystem = DefaultStarSystem;
} }
} }
@ -903,15 +893,23 @@ namespace NewHorizons
{ {
if (SystemDict[_currentStarSystem].Config.respawnHere) return; if (SystemDict[_currentStarSystem].Config.respawnHere) return;
// If the override is a valid system then we go there ResetCurrentStarSystem();
}
}
private void ResetCurrentStarSystem()
{
if (SystemDict.ContainsKey(_defaultSystemOverride)) if (SystemDict.ContainsKey(_defaultSystemOverride))
{ {
_currentStarSystem = _defaultSystemOverride; _currentStarSystem = _defaultSystemOverride;
// Sometimes the override will not support spawning regularly, so always warp in
IsWarpingFromShip = true;
} }
else else
{ {
_currentStarSystem = _defaultStarSystem; _currentStarSystem = _defaultStarSystem;
} IsWarpingFromShip = false;
} }
} }
#endregion Change star system #endregion Change star system