fix SaveSync prompt. Make it a Screen again so that it can be used in branching and doesn't need to be integrated into an already-complicated ScreenGameplay.

This commit is contained in:
Chris Danford
2005-11-08 17:51:40 +00:00
parent 4741eac616
commit e87df3bc5e
5 changed files with 29 additions and 6 deletions
+1 -1
View File
@@ -1974,7 +1974,7 @@ void ScreenEdit::TransitionEditState( EditState em )
case STATE_PLAYING:
if( GAMESTATE->IsSyncDataChanged() )
ScreenSaveSync::SaveSync();
ScreenSaveSync::PromptSaveSync();
break;
case STATE_RECORDING:
+7 -1
View File
@@ -26,7 +26,7 @@ namespace
void *g_pCallbackData;
};
void ScreenPrompt::Prompt( ScreenMessage smSendOnPop, const CString &sText, PromptType type, PromptAnswer defaultAnswer, void(*OnYes)(void*), void(*OnNo)(void*), void* pCallbackData )
void ScreenPrompt::SetPromptSettings( const CString &sText, PromptType type, PromptAnswer defaultAnswer, void(*OnYes)(void*), void(*OnNo)(void*), void* pCallbackData )
{
g_sText = sText;
g_PromptType = type;
@@ -34,11 +34,17 @@ void ScreenPrompt::Prompt( ScreenMessage smSendOnPop, const CString &sText, Prom
g_pOnYes = OnYes;
g_pOnNo = OnNo;
g_pCallbackData = pCallbackData;
}
void ScreenPrompt::Prompt( ScreenMessage smSendOnPop, const CString &sText, PromptType type, PromptAnswer defaultAnswer, void(*OnYes)(void*), void(*OnNo)(void*), void* pCallbackData )
{
SetPromptSettings( sText, type, defaultAnswer, OnYes, OnNo, pCallbackData );
SCREENMAN->AddNewScreenToTop( "ScreenPrompt", smSendOnPop );
}
REGISTER_SCREEN_CLASS( ScreenPrompt );
ScreenPrompt::ScreenPrompt( const CString &sScreenName ):
ScreenWithMenuElements( sScreenName )
+1
View File
@@ -25,6 +25,7 @@ enum PromptAnswer
class ScreenPrompt : public ScreenWithMenuElements
{
public:
static void SetPromptSettings( const CString &sText, PromptType type = PROMPT_OK, PromptAnswer defaultAnswer = ANSWER_NO, void(*OnYes)(void*) = NULL, void(*OnNo)(void*) = NULL, void* pCallbackData = NULL );
static void Prompt( ScreenMessage smSendOnPop, const CString &sText, PromptType type = PROMPT_OK, PromptAnswer defaultAnswer = ANSWER_NO, void(*OnYes)(void*) = NULL, void(*OnNo)(void*) = NULL, void* pCallbackData = NULL );
ScreenPrompt( const CString &sScreenName );
+14 -2
View File
@@ -91,7 +91,7 @@ static CString GetPromptText()
}
s +="\n\n"
"Would you like to save these changes to the song file?\n"
"Would you like to save these changes?\n"
"Choosing NO will discard your changes.";
return s;
@@ -107,7 +107,19 @@ static void RevertSyncChanges( void* pThrowAway )
GAMESTATE->RevertSyncChanges();
}
void ScreenSaveSync::SaveSync()
REGISTER_SCREEN_CLASS( ScreenSaveSync );
ScreenSaveSync::ScreenSaveSync( CString sClassName ) : ScreenPrompt( sClassName )
{
ScreenPrompt::SetPromptSettings(
GetPromptText(),
PROMPT_YES_NO,
ANSWER_YES,
SaveSyncChanges,
RevertSyncChanges,
NULL );
}
void ScreenSaveSync::PromptSaveSync()
{
ScreenPrompt::Prompt(
SM_None,
+6 -2
View File
@@ -3,10 +3,14 @@
#ifndef ScreenSaveSync_H
#define ScreenSaveSync_H
class ScreenSaveSync
#include "ScreenPrompt.h"
class ScreenSaveSync : public ScreenPrompt
{
public:
static void SaveSync();
ScreenSaveSync( CString sName );
static void PromptSaveSync();
};