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:
@@ -1974,7 +1974,7 @@ void ScreenEdit::TransitionEditState( EditState em )
|
||||
|
||||
case STATE_PLAYING:
|
||||
if( GAMESTATE->IsSyncDataChanged() )
|
||||
ScreenSaveSync::SaveSync();
|
||||
ScreenSaveSync::PromptSaveSync();
|
||||
break;
|
||||
|
||||
case STATE_RECORDING:
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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();
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user