Added logic to prevent crashing on an invalid initial screen. Added HARDCODED error screen in _fallback for displaying and explaining the error when a theme has an invalid initial screen.
This commit is contained in:
@@ -16,6 +16,10 @@ Example:
|
||||
This means that three strings were added to the "ScreenDebugOverlay" section,
|
||||
"Mute actions", "Mute actions on", and "Mute actions off".
|
||||
|
||||
2015/06/06
|
||||
----------
|
||||
* [ScreenInitialScreenIsInvalid] InvalidScreenExplanation
|
||||
|
||||
2015/05/09
|
||||
----------
|
||||
* [OptionExplanations] AxisFix
|
||||
|
||||
@@ -4,6 +4,11 @@ The StepMania 5 Changelog covers all post-sm-ssc changes. For a list of changes
|
||||
from StepMania 4 alpha 5 to sm-ssc v1.2.5, see Changelog_sm-ssc.txt.
|
||||
________________________________________________________________________________
|
||||
|
||||
2015/06/06
|
||||
----------
|
||||
* [ScreenInitialScreenIsInvalid] Error screen for themes that set an invalid
|
||||
initial screen. [kyzentun]
|
||||
|
||||
2015/06/05
|
||||
----------
|
||||
* [global] update_centering lua function exposed. [kyzentun]
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
return Def.ActorFrame{
|
||||
Def.BitmapText{
|
||||
Font= "Common Normal",
|
||||
Text= THEME:GetString("ScreenInitialScreenIsInvalid", "InvalidScreenExplanation"),
|
||||
InitCommand= function(self)
|
||||
self:xy(_screen.cx, _screen.cy):wrapwidthpixels(_screen.w-16)
|
||||
:diffuse{1, 1, 1, 1}:strokecolor{0, 0, 0, 1}
|
||||
end
|
||||
}
|
||||
}
|
||||
@@ -1436,6 +1436,8 @@ Could not find '%s'.=Could not find '%s'.
|
||||
HeaderText=
|
||||
HeaderSubText=
|
||||
HelpText=
|
||||
[ScreenInitialScreenIsInvalid]
|
||||
InvalidScreenExplanation=The initial screen set by this theme is not valid. It is not defined anywhere in the theme or in the _fallback theme. This is an error in the theme and should be reported to the theme's author. You can press Scroll Lock (the operator key) to access the service menu and change to a different theme.
|
||||
[ScreenAppearanceOptions]
|
||||
HeaderText=Appearance
|
||||
HeaderSubText=Customize your game
|
||||
|
||||
@@ -1533,6 +1533,10 @@ CancelCancelCommand=
|
||||
LightsMode="LightsMode_MenuStartAndDirections"
|
||||
ShowCreditDisplay=false
|
||||
|
||||
[ScreenInitialScreenIsInvalid]
|
||||
Class="ScreenWithMenuElements"
|
||||
Fallback="ScreenWithMenuElements"
|
||||
|
||||
[ScreenDebugOverlay]
|
||||
Class="ScreenDebugOverlay"
|
||||
Fallback="Screen"
|
||||
|
||||
+10
-2
@@ -354,9 +354,17 @@ void StepMania::ResetGame()
|
||||
ThemeMetric<RString> INITIAL_SCREEN ("Common","InitialScreen");
|
||||
RString StepMania::GetInitialScreen()
|
||||
{
|
||||
if( PREFSMAN->m_sTestInitialScreen.Get() != "" )
|
||||
if(PREFSMAN->m_sTestInitialScreen.Get() != "" &&
|
||||
SCREENMAN->IsScreenNameValid(PREFSMAN->m_sTestInitialScreen))
|
||||
{
|
||||
return PREFSMAN->m_sTestInitialScreen;
|
||||
return INITIAL_SCREEN.GetValue();
|
||||
}
|
||||
RString screen_name= INITIAL_SCREEN.GetValue();
|
||||
if(!SCREENMAN->IsScreenNameValid(screen_name))
|
||||
{
|
||||
screen_name= "ScreenInitialScreenIsInvalid";
|
||||
}
|
||||
return screen_name;
|
||||
}
|
||||
ThemeMetric<RString> SELECT_MUSIC_SCREEN ("Common","SelectMusicScreen");
|
||||
RString StepMania::GetSelectMusicScreen()
|
||||
|
||||
Reference in New Issue
Block a user