Fix bugs 1509452 (failing extra stage causes game over) and 1508308 (setting ShowEvaluationOnFail=1 is ignored).

This commit is contained in:
Steve Checkoway
2006-06-22 11:36:42 +00:00
parent 96a173d753
commit f16e921945
@@ -86,9 +86,10 @@ function GetEvaluationNextScreen( sNextScreen, sFailedScreen, sEndScreen )
Trace( "IsEventMode" )
return sNextScreen
end
local bIsExtraStage = GAMESTATE:IsExtraStage() or GAMESTATE:IsExtraStage2()
-- Not in event mode. If failed, go to the game over screen.
if STATSMAN:GetCurStageStats():AllFailed() then
if STATSMAN:GetCurStageStats():AllFailed() and not bIsExtraStage then
Trace( "Failed" )
return sFailedScreen
end
@@ -97,7 +98,7 @@ function GetEvaluationNextScreen( sNextScreen, sFailedScreen, sEndScreen )
if sIsStage then
local bHasAnotherStage = GAMESTATE:HasEarnedExtraStage()
bHasAnotherStage = bHasAnotherStage or not
(GAMESTATE:IsFinalStage() or GAMESTATE:IsExtraStage() or GAMESTATE:IsExtraStage2() )
(GAMESTATE:IsFinalStage() or bIsExtraStage )
if bHasAnotherStage then
Trace( "Another" )
return sNextScreen
@@ -142,7 +143,8 @@ function GetGameplayNextScreen()
Trace( " Event mode = "..tostring(IsEventMode()) )
if Passed or GAMESTATE:IsCourseMode() or
GAMESTATE:IsExtraStage() or GAMESTATE:IsExtraStage2()
GAMESTATE:IsExtraStage() or GAMESTATE:IsExtraStage2() or
GetTopScreenMetric( "ShowEvaluationOnFail" ) == "1"
then
Trace( "Go to evaluation screen" )
return SelectEvaluationScreen()