Files
GTASource/game/SaveLoad/savegame_messages.cpp
expvintl 419f2e4752 init
2025-02-23 17:40:52 +08:00

1785 lines
72 KiB
C++

// Rage headers
#include "system/userlist.h"
// Framework headers
// #include "fwsys/timer.h"
// Game headers
#include "camera/CamInterface.h"
#include "Core/gamesessionstatemachine.h"
#include "frontend/loadingscreens.h"
#include "frontend/PauseMenu.h"
#include "frontend/WarningScreen.h"
#include "network/Live/livemanager.h"
#include "Peds/ped.h"
#include "SaveLoad/GenericGameStorage.h"
#include "SaveLoad/savegame_autoload.h"
#include "SaveLoad/savegame_channel.h"
#include "SaveLoad/savegame_initial_checks.h"
#include "SaveLoad/savegame_list.h"
#include "SaveLoad/savegame_load.h"
#include "SaveLoad/savegame_messages.h"
#include "SaveLoad/savegame_photo_manager.h"
#include "SaveLoad/savegame_users_and_devices.h"
#include "scene/world/GameWorld.h"
#include "Text/Messages.h"
#include "Text/TextConversion.h"
#include "network/NetworkInterface.h"
#include "network/Live/NetworkProfileStats.h"
#include "control/replay/replay.h"
SAVEGAME_OPTIMISATIONS()
#if __PPU
const char *pTextLabelOfLoadingWarning = "SG_LOADING_PS3";
const char *pTextLabelOfLoadingSucceededTrophy = "SG_LOAD_SUC_T";
const char *pTextLabelOfLoadingSucceededNoTrophy = "SG_LOAD_SUC_NT";
const char *pTextLabelOfDeletingWarning = "SG_DELETING_PS3";
#elif __WIN32PC
const char *pTextLabelOfLoadingWarning = "SG_LOADING_PC";
const char *pTextLabelOfLoadingSucceeded = "SG_LOAD_SUC";
const char *pTextLabelOfDeletingWarning = "SG_DELETING_PC";
#else
const char *pTextLabelOfLoadingWarning = "SG_LOADING";
const char *pTextLabelOfLoadingSucceeded = "SG_LOAD_SUC";
const char *pTextLabelOfDeletingWarning = "SG_DELETING";
#endif
#if GTA_REPLAY
const char *pTextLabelOfSavingReplayWarning = "SG_REPLAY";
const char *pTextLabelOfReplaySavingVideoWarning = "SG_PROJECT";
const char *pTextLabelOfReplaySavingThumbWarning = "MO_THUMBNAILED";
#endif // GTA_REPLAY
sysTimer CSavingMessage::m_TimeDisplayedFor;
bool CSavingMessage::m_bDisplaySavingMessage = false;
CSavingMessage::eTypeOfMessage CSavingMessage::m_eTypeOfMessage = STORAGE_DEVICE_MESSAGE_INVALID;
SaveGameDialogCode CSavegameDialogScreens::ms_MostRecentErrorCode = SAVE_GAME_DIALOG_NONE;
s32 CLoadConfirmationMessage::ms_SlotForPlayerConfirmation = -1;
CLoadConfirmationMessage::eLoadConfirmationType CLoadConfirmationMessage::ms_TypeOfPlayerConfirmationCheck = LOAD_CONFIRMATION_NONE;
CLoadConfirmationMessage::eLoadMessageType CLoadConfirmationMessage::ms_LoadMessageType = LOAD_MESSAGE_LOAD;
bool CLoadConfirmationMessage::ms_bSlotIsDamaged = false;
s32 CSaveConfirmationMessage::ms_SlotForPlayerConfirmation = -1;
CSaveConfirmationMessage::eSaveConfirmationType CSaveConfirmationMessage::ms_TypeOfPlayerConfirmationCheck = SAVE_CONFIRMATION_NONE;
CSaveConfirmationMessage::eSaveMessageType CSaveConfirmationMessage::ms_SaveMessageType = SAVE_MESSAGE_SAVE;
char CSavegameDialogScreens::DialogBoxHeading[TEXT_KEY_SIZE];
u32 CSavegameDialogScreens::ms_NumberOfFramesToRenderBlackScreen = 0;
u32 CSavegameDialogScreens::ms_NumberOfFramesThatTheMessageHasBeenDisplayingFor = 0;
bool CSavegameDialogScreens::ms_bAllowSetMessageAsProcessingToBeCalled = false;
bool CSavegameDialogScreens::ms_bMessageIsProcessingThisFrame = false;
bool CSavegameDialogScreens::ms_bMessageWasProcessedLastFrame = false;
bool CSavegameDialogScreens::sm_bStartedUserPause = false;
bool CSavegameDialogScreens::sm_bScriptWasPaused = false;
bool CSavegameDialogScreens::sm_bLoadingScreensHaveBeenSuspended = false;
static const float MAX_TIME_TO_DISPLAY_FOR = 3000.0f;
void CSavingMessage::Clear()
{
#if !__NO_OUTPUT
if (m_bDisplaySavingMessage)
{
// sysStack::PrintStackTrace();
savegameDisplayf("CSavingMessage::Clear has been called");
}
#endif // !__NO_OUTPUT
m_bDisplaySavingMessage = false;
m_TimeDisplayedFor.Reset();
m_eTypeOfMessage = STORAGE_DEVICE_MESSAGE_INVALID;
if (CSavingGameMessage::IsSavingMessageActive())
{
CSavingGameMessage::Clear();
}
}
void CSavingMessage::BeginDisplaying(eTypeOfMessage MessageType)
{
#if !__NO_OUTPUT
if (!m_bDisplaySavingMessage)
{
// sysStack::PrintStackTrace();
savegameDisplayf("CSavingMessage::BeginDisplaying has been called");
}
#endif // !__NO_OUTPUT
Assertf(MessageType != STORAGE_DEVICE_MESSAGE_INVALID, "CSavingMessage::BeginDisplaying - can't call this with STORAGE_DEVICE_MESSAGE_INVALID");
m_bDisplaySavingMessage = true;
m_TimeDisplayedFor.Reset();
m_eTypeOfMessage = MessageType;
}
bool CSavingMessage::ShouldDisplaySavingSpinner()
{
if (m_bDisplaySavingMessage)
{
switch (m_eTypeOfMessage)
{
case STORAGE_DEVICE_MESSAGE_SAVING :
case STORAGE_DEVICE_MESSAGE_LOCAL_DELETING :
#if GTA_REPLAY
case STORAGE_DEVICE_MESSAGE_SAVING_REPLAY:
case STORAGE_DEVICE_MESSAGE_SAVING_REPLAY_PROJECT:
case STORAGE_DEVICE_MESSAGE_SAVING_REPLAY_PROJECT_NO_TEXT:
case STORAGE_DEVICE_MESSAGE_SAVING_REPLAY_THUMBNAIL:
#endif // GTA_REPLAY
return true;
default :
return false;
}
}
return false;
}
void CSavingMessage::DisplaySavingMessage()
{
static char StorageDeviceMessageSaving[] = "No Text for Local Saves";
static char StorageDeviceMessageCloudSaving[] = "No Text for Cloud Saves";
if (m_bDisplaySavingMessage)
{
const char *pString = NULL;
CSavingGameMessage::eICON_STYLE iconToDisplay = CSavingGameMessage::SAVEGAME_ICON_STYLE_NONE;
switch (m_eTypeOfMessage)
{
case STORAGE_DEVICE_MESSAGE_INVALID :
Assertf(0, "CSavingMessage::DisplaySavingMessage - message type should never be STORAGE_DEVICE_MESSAGE_INVALID when m_bDisplaySavingMessage is TRUE");
break;
case STORAGE_DEVICE_MESSAGE_SAVING :
pString = StorageDeviceMessageSaving;
#if __BANK
if (CGenericGameStorage::ms_bDisplayLoadingSpinnerWhenSaving)
{
iconToDisplay = CSavingGameMessage::SAVEGAME_ICON_STYLE_LOADING;
}
else
#endif // __BANK
{
iconToDisplay = CSavingGameMessage::SAVEGAME_ICON_STYLE_SAVING;
}
break;
case STORAGE_DEVICE_MESSAGE_LOADING :
pString = TheText.Get(pTextLabelOfLoadingWarning);
iconToDisplay = CSavingGameMessage::SAVEGAME_ICON_STYLE_LOADING;
break;
case STORAGE_DEVICE_MESSAGE_LOAD_SUCCESSFUL :
#if __PPU
pString = CLiveManager::GetAchMgr().GetTrophiesEnabled()?TheText.Get(pTextLabelOfLoadingSucceededTrophy):TheText.Get(pTextLabelOfLoadingSucceededNoTrophy);
#else
pString = TheText.Get(pTextLabelOfLoadingSucceeded);
#endif // __PPU
break;
case STORAGE_DEVICE_MESSAGE_CLOUD_SAVING :
pString = StorageDeviceMessageCloudSaving; // The string isn't actually displayed now. I'll just set it to something in case it ever comes back.
iconToDisplay = CSavingGameMessage::SAVEGAME_ICON_STYLE_CLOUD_WORKING;
break;
case STORAGE_DEVICE_MESSAGE_CLOUD_LOADING :
pString = TheText.Get(pTextLabelOfLoadingWarning); // The string isn't actually displayed now. I'll just set it to something in case it ever comes back.
iconToDisplay = CSavingGameMessage::SAVEGAME_ICON_STYLE_CLOUD_WORKING;
break;
case STORAGE_DEVICE_MESSAGE_LOCAL_DELETING :
case STORAGE_DEVICE_MESSAGE_CLOUD_DELETING :
pString = TheText.Get(pTextLabelOfDeletingWarning);
if (m_eTypeOfMessage == STORAGE_DEVICE_MESSAGE_CLOUD_DELETING)
{
iconToDisplay = CSavingGameMessage::SAVEGAME_ICON_STYLE_CLOUD_WORKING;
}
else
{
iconToDisplay = CSavingGameMessage::SAVEGAME_ICON_STYLE_SAVING;
}
break;
#if GTA_REPLAY
case STORAGE_DEVICE_MESSAGE_SAVING_REPLAY:
pString = TheText.Get(pTextLabelOfSavingReplayWarning);
iconToDisplay = CSavingGameMessage::SAVEGAME_ICON_STYLE_SAVING;
break;
case STORAGE_DEVICE_MESSAGE_SAVING_REPLAY_PROJECT:
pString = TheText.Get(pTextLabelOfReplaySavingVideoWarning);
iconToDisplay = CSavingGameMessage::SAVEGAME_ICON_STYLE_SAVING;
break;
case STORAGE_DEVICE_MESSAGE_SAVING_REPLAY_PROJECT_NO_TEXT:
pString = "";
iconToDisplay = CSavingGameMessage::SAVEGAME_ICON_STYLE_SAVING_NO_MESSAGE;
break;
case STORAGE_DEVICE_MESSAGE_SAVING_REPLAY_THUMBNAIL:
pString = TheText.Get(pTextLabelOfReplaySavingThumbWarning);
iconToDisplay = CSavingGameMessage::SAVEGAME_ICON_STYLE_SAVING;
break;
#endif // GTA_REPLAY
}
Assertf(pString, "CSavingMessage::DisplaySavingMessage - Can't find SG_SAVING in the text file");
CSavingGameMessage::SetMessageText(pString, iconToDisplay);
savegameDebugf2("CSavingMessage::DisplaySavingMessage - TimeToDisplay = %.1f\n", m_TimeDisplayedFor.GetMsTime());
bool bClearMessage = false;
switch (m_eTypeOfMessage)
{
case STORAGE_DEVICE_MESSAGE_INVALID :
break;
case STORAGE_DEVICE_MESSAGE_SAVING :
case STORAGE_DEVICE_MESSAGE_CLOUD_SAVING :
if (m_TimeDisplayedFor.GetMsTime() >= MAX_TIME_TO_DISPLAY_FOR)
{
bool isMultiplayerProfileFlushing = (NetworkInterface::IsGameInProgress()
&& (CLiveManager::GetProfileStatsMgr().PendingFlush() || CLiveManager::GetProfileStatsMgr().PendingMultiplayerFlushRequest()));
if (!CGenericGameStorage::IsSavegameSaveInProgress()
&& !CGenericGameStorage::IsMpStatsSaveInProgress()
&& !isMultiplayerProfileFlushing
&& !CGenericGameStorage::IsPhotoSaveInProgress()
#if __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
&& !CGenericGameStorage::IsUploadingSavegameToCloud()
#endif // __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
)
{
bClearMessage = true;
}
}
break;
case STORAGE_DEVICE_MESSAGE_LOADING :
case STORAGE_DEVICE_MESSAGE_CLOUD_LOADING :
if (!CGenericGameStorage::IsSavegameLoadInProgress()
&& !CGenericGameStorage::IsMpStatsLoadInProgress()
&& !CGenericGameStorage::IsPhotoLoadInProgress())
{ // (m_TimeDisplayedFor >= 3000) &&
bClearMessage = true;
}
break;
case STORAGE_DEVICE_MESSAGE_LOAD_SUCCESSFUL :
#if __PPU
if (m_TimeDisplayedFor.GetMsTime() >= (CLiveManager::GetAchMgr().GetTrophiesEnabled()?4000.0f:6000.0f))
#else
if (m_TimeDisplayedFor.GetMsTime() >= 3000.0f)
#endif
{
bClearMessage = true;
}
break;
case STORAGE_DEVICE_MESSAGE_LOCAL_DELETING :
if (!CGenericGameStorage::IsLocalDeleteInProgress())
{ // (m_TimeDisplayedFor >= 3000) &&
bClearMessage = true;
}
break;
case STORAGE_DEVICE_MESSAGE_CLOUD_DELETING :
if (!CGenericGameStorage::IsCloudDeleteInProgress())
{ // (m_TimeDisplayedFor >= 3000) &&
bClearMessage = true;
}
break;
#if GTA_REPLAY
case STORAGE_DEVICE_MESSAGE_SAVING_REPLAY:
case STORAGE_DEVICE_MESSAGE_SAVING_REPLAY_PROJECT:
case STORAGE_DEVICE_MESSAGE_SAVING_REPLAY_PROJECT_NO_TEXT:
case STORAGE_DEVICE_MESSAGE_SAVING_REPLAY_THUMBNAIL:
if ( (m_TimeDisplayedFor.GetMsTime() >= MAX_TIME_TO_DISPLAY_FOR) && (!CReplayMgr::IsPerformingFileOp()) )
{
bClearMessage = true;
}
break;
#endif // GTA_REPLAY
}
if (bClearMessage)
{
savegameDisplayf("CSavingMessage::DisplaySavingMessage - Clearing SavingMessage - TimeToDisplay = %.1f", m_TimeDisplayedFor.GetMsTime());
m_bDisplaySavingMessage = false;
CSavingGameMessage::Clear();
}
}
}
bool CSavingMessage::HasLoadingMessageDisplayedForLongEnough()
{
// Do I need to deal with STORAGE_DEVICE_MESSAGE_CLOUD_SAVING and/or STORAGE_DEVICE_MESSAGE_CLOUD_LOADING here?
if (m_bDisplaySavingMessage && (m_eTypeOfMessage == STORAGE_DEVICE_MESSAGE_LOADING))
{
if (m_TimeDisplayedFor.GetMsTime() >= MAX_TIME_TO_DISPLAY_FOR)
{
return true;
}
else
{
return false;
}
}
else
{ // For safety, return true if the loading message is not displaying at all
return true;
}
}
void CSavegameDialogScreens::Init(unsigned initMode)
{
if(initMode == INIT_CORE)
{
}
else if(initMode == INIT_AFTER_MAP_LOADED)
{
ms_MostRecentErrorCode = SAVE_GAME_DIALOG_NONE;
// Should I be resetting CLoadConfirmationMessage and CSaveConfirmationMessage after the map has loaded?
// SlotForPlayerConfirmation = -1;
// TypeOfPlayerConfirmationCheck = PLAYER_CONFIRMATION_NONE;
// StatusOfPlayerConfirmation = 0;
strncpy(DialogBoxHeading, "SG_HDNG", TEXT_KEY_SIZE); // SG_HDG_SAVE
// ms_bHasBeenPaused = false;
// SetMessageAsProcessing(false);
ms_bAllowSetMessageAsProcessingToBeCalled = false;
ms_bMessageIsProcessingThisFrame = false;
// ms_bMessageWasProcessedLastFrame = false; // Graeme - I think it might be safer if I don't reset this here. Despite being in INIT_AFTER_MAP_LOADED, it's called whenever a new session starts.
}
}
void CSavegameDialogScreens::BeforeUpdatingTheSavegameQueue()
{
ms_bAllowSetMessageAsProcessingToBeCalled = true;
ms_bMessageIsProcessingThisFrame = false;
}
bool CSavegameDialogScreens::ShouldRenderBlackScreen()
{
if (ms_NumberOfFramesToRenderBlackScreen > 0)
{
savegameDisplayf("CSavegameDialogScreens::ShouldRenderBlackScreen - returning true. About to decrement ms_NumberOfFramesToRenderBlackScreen from %u", ms_NumberOfFramesToRenderBlackScreen);
ms_NumberOfFramesToRenderBlackScreen--;
return true;
}
return false;
}
void CSavegameDialogScreens::RenderBlackScreen()
{
GRCDEVICE.Clear(true, Color32(0x00000000), false, 0, false, 0);
}
void CSavegameDialogScreens::SetSaveGameError(SaveGameDialogCode NewErrorCode)
{
Assertf(ms_MostRecentErrorCode == SAVE_GAME_DIALOG_NONE, "CSavegameDialogScreens::SetSaveGameError - trying to overwrite a save game error code");
ms_MostRecentErrorCode = NewErrorCode;
}
bool CSavegameDialogScreens::HandleSaveGameErrorCode()
{
bool ReturnSelection = false;
// if (IsPerformingAutoLoadAtStartOfGame())
// {
// ms_MostRecentErrorCode = SAVE_GAME_DIALOG_NONE;
// return true;
// }
if (HandleSaveGameDialogBox(ms_MostRecentErrorCode, 0, &ReturnSelection))
{ // number of buttons will be 1 for all of the error codes
ms_MostRecentErrorCode = SAVE_GAME_DIALOG_NONE;
return true;
}
return false;
}
void CSavegameDialogScreens::SetDialogBoxHeading(const char *pNewHeading)
{
strncpy(DialogBoxHeading, pNewHeading, TEXT_KEY_SIZE);
}
void CSavegameDialogScreens::SetMessageAsProcessing(bool bProcessing)
{
// Special case for autoloading at start of game. It doesn't use the savegame queue
// AfterUpdatingTheSavegameQueue() won't be getting called during autoload so the player control won't be getting disabled and the game won't be paused. Not sure if that matters.
if (savegameVerifyf(ms_bAllowSetMessageAsProcessingToBeCalled || CSavegameAutoload::IsPerformingAutoLoadAtStartOfGame() || (CGameSessionStateMachine::GetGameSessionState() == CGameSessionStateMachine::HANDLE_LOADED_SAVE_GAME), "CSavegameDialogScreens::SetMessageAsProcessing - can only call this within the update of the savegame queue"))
{
ms_bMessageIsProcessingThisFrame = bProcessing;
}
}
void CSavegameDialogScreens::AfterUpdatingTheSavegameQueue()
{
if (!CPauseMenu::IsActive())
{
if (ms_bMessageIsProcessingThisFrame)
{
if (!ms_bMessageWasProcessedLastFrame)
{
if (CGameWorld::FindLocalPlayer() && CGameWorld::FindLocalPlayer()->GetPlayerInfo())
{
CGameWorld::FindLocalPlayer()->GetPlayerInfo()->DisableControlsFrontend();
savegameDisplayf("CSavegameDialogScreens::AfterUpdatingTheSavegameQueue - has called DisableControlsFrontend()");
}
if ( (CLoadingScreens::AreActive()) && (!CLoadingScreens::AreSuspended()) )
{
CLoadingScreens::Suspend();
sm_bLoadingScreensHaveBeenSuspended = true;
}
else
{
sm_bLoadingScreensHaveBeenSuspended = false;
}
sm_bScriptWasPaused = false;
sm_bStartedUserPause = false;
ms_NumberOfFramesThatTheMessageHasBeenDisplayingFor = 0;
}
if (ms_NumberOfFramesThatTheMessageHasBeenDisplayingFor < 20)
{ // I'm only interested in the first few frames that the message is displayed
ms_NumberOfFramesThatTheMessageHasBeenDisplayingFor++;
}
if (ms_NumberOfFramesThatTheMessageHasBeenDisplayingFor == CGenericGameStorage::ms_NumberOfFramesToDisplayWarningMessageForBeforePausingTheGame)
{
if(!NetworkInterface::IsNetworkOpen())
{
//Change Script Pause
if (fwTimer::IsScriptPaused())
{
fwTimer::EndScriptPause();
sm_bScriptWasPaused = true;
savegameDisplayf("CSavegameDialogScreens::AfterUpdatingTheSavegameQueue - has called EndScriptPause()");
}
// Graeme - should I be checking fwTimer::IsUserPaused()
// and only calling fwTimer::EndUserPause() later if it's not already paused now
//This is needed to restore the timers to what they were before the front end opened.
//fwTimer::StoreCurrentTime();
//Change User Pause
fwTimer::StartUserPause();
sm_bStartedUserPause = true;
savegameDisplayf("CSavegameDialogScreens::AfterUpdatingTheSavegameQueue - has called StartUserPause()");
}
}
}
else // if (!ms_bMessageIsProcessingThisFrame)
{
if (ms_bMessageWasProcessedLastFrame)
{
if (CGameWorld::FindLocalPlayer() && CGameWorld::FindLocalPlayer()->GetPlayerInfo())
{
CGameWorld::FindLocalPlayer()->GetPlayerInfo()->EnableControlsFrontend();
savegameDisplayf("CSavegameDialogScreens::AfterUpdatingTheSavegameQueue - has called EnableControlsFrontend()");
}
//Check for User Pause
if(sm_bStartedUserPause)
{
//This is needed to restore the timers when the frontend closes.
//fwTimer::RestoreCurrentTime();
fwTimer::EndUserPause();
sm_bStartedUserPause = false;
savegameDisplayf("CSavegameDialogScreens::AfterUpdatingTheSavegameQueue - has called EndUserPause()");
}
//Check for Script Pause
if (sm_bScriptWasPaused)
{
fwTimer::StartScriptPause();
sm_bScriptWasPaused = false;
savegameDisplayf("CSavegameDialogScreens::AfterUpdatingTheSavegameQueue - has called StartScriptPause()");
}
if (sm_bLoadingScreensHaveBeenSuspended && (CLoadingScreens::AreSuspended()) )
{
CLoadingScreens::Resume();
}
sm_bLoadingScreensHaveBeenSuspended = false;
}
}
}
ms_bMessageWasProcessedLastFrame = ms_bMessageIsProcessingThisFrame;
ms_bAllowSetMessageAsProcessingToBeCalled = false;
}
#if __ALLOW_EXPORT_OF_SP_SAVEGAMES
#if __NO_OUTPUT
#define SAVEGAME_MESSAGES_CHECK_TEXT_LABEL_EXISTS(textLabel)
#else
#define SAVEGAME_MESSAGES_CHECK_TEXT_LABEL_EXISTS(textLabel) \
if (!TheText.DoesTextLabelExist(textLabel))\
{\
savegameErrorf("Can't find Key %s in the text file", textLabel);\
savegameAssertf(0, "Can't find Key %s in the text file", textLabel);\
}
#endif
#endif // __ALLOW_EXPORT_OF_SP_SAVEGAMES
bool CSavegameDialogScreens::HandleSaveGameDialogBox(u32 MessageToDisplay, const int NumberToInsertInMessage, bool *pReturnSelection)
{
if( CLoadingScreens::IsDisplayingLegalScreen())
return false;
char cSaveGameName[SAVE_GAME_MAX_DISPLAY_NAME_LENGTH];
char cSaveGameDate[MAX_MENU_ITEM_CHAR_LENGTH];
#if __REMOVE_TIME_FROM_DATE_TIME_STRINGS_IN_EXPORT_MESSAGES
int LengthOfSaveGameDate = 0;
#endif // __REMOVE_TIME_FROM_DATE_TIME_STRINGS_IN_EXPORT_MESSAGES
bool bSlotIsEmpty = false;
bool bSlotIsDamaged = false;
int NumberOfButtons = 1;
bool bDisplayingTheRemovedDeviceMessage = false;
SetMessageAsProcessing(true);
// #define FE_WARNING_NONE (1<<0)
// #define FE_WARNING_ACCEPT (1<<1)
// #define FE_WARNING_BACK (1<<2)
// #define FE_WARNING_RETRY (1<<3)
switch (MessageToDisplay)
{
case SAVE_GAME_DIALOG_SIGN_IN :
{
// You are not signed in. Do you want to sign in now?
const char *pTextLabel = "SG_SIGNIN";
switch (CGenericGameStorage::GetSaveOperation())
{
case OPERATION_NONE :
savegameAssertf(0, "CSavegameDialogScreens::HandleSaveGameDialogBox - didn't expect OPERATION_NONE");
break;
case OPERATION_LOADING_REPLAY_SAVEGAME_FROM_CONSOLE :
savegameAssertf(0, "CSavegameDialogScreens::HandleSaveGameDialogBox - didn't expect to reach here for OPERATION_LOADING_REPLAY_SAVEGAME_FROM_CONSOLE");
break;
case OPERATION_LOADING_MPSTATS_FROM_CLOUD:
case OPERATION_SCANNING_CONSOLE_FOR_LOADING_SAVEGAMES :
case OPERATION_LOADING_SAVEGAME_FROM_CONSOLE :
case OPERATION_LOADING_PHOTO_FROM_CLOUD :
#if RSG_ORBIS
case OPERATION_CHECKING_FOR_FREE_SPACE_AT_START_OF_GAME :
#endif
case OPERATION_CHECKING_IF_FILE_EXISTS :
case OPERATION_DELETING_LOCAL :
case OPERATION_DELETING_CLOUD :
case OPERATION_SAVING_LOCAL_PHOTO :
case OPERATION_LOADING_LOCAL_PHOTO :
case OPERATION_ENUMERATING_PHOTOS :
case OPERATION_ENUMERATING_SAVEGAMES :
break;
case OPERATION_SAVING_MPSTATS_TO_CLOUD:
case OPERATION_SCANNING_CONSOLE_FOR_SAVING_SAVEGAMES :
case OPERATION_SAVING_SAVEGAME_TO_CONSOLE :
case OPERATION_SAVING_PHOTO_TO_CLOUD :
#if __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
case OPERATION_UPLOADING_SAVEGAME_TO_CLOUD :
#endif // __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
case OPERATION_CHECKING_FOR_FREE_SPACE :
#if __ALLOW_LOCAL_MP_STATS_SAVES
case OPERATION_LOADING_MPSTATS_SAVEGAME_FROM_CONSOLE :
case OPERATION_SAVING_MPSTATS_SAVEGAME_TO_CONSOLE :
#endif // __ALLOW_LOCAL_MP_STATS_SAVES
pTextLabel = "SG_SIGNIN_SV";
break;
case OPERATION_SAVING_MISSION_REPEAT_SAVEGAME_TO_CONSOLE :
pTextLabel = "SG_SGN_SV_RPT";
break;
case OPERATION_SAVING_REPLAY_SAVEGAME_TO_CONSOLE :
pTextLabel = "SG_SGN_SV_RPLY";
break;
case OPERATION_AUTOSAVING :
pTextLabel = "SG_SIGNIN_ATSV";
break;
}
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, pTextLabel, FE_WARNING_YES_NO);
NumberOfButtons = 2;
// Try no dialog before sign in blade
// MessageToDisplay = SAVE_GAME_DIALOG_NONE;
}
break;
case SAVE_GAME_DIALOG_DONT_SIGN_IN_TRY_AGAIN :
{
// You have not signed in. You will need to sign in to save your progress and to be awarded Achievements. Do you want to sign in now?
const char *pTextLabel = "SG_SIGNIN_AGN";
if (CGenericGameStorage::GetSaveOperation() == OPERATION_SAVING_MISSION_REPEAT_SAVEGAME_TO_CONSOLE)
{
pTextLabel = "SG_SGN_SV_RPT_A";
}
else if (CGenericGameStorage::GetSaveOperation() == OPERATION_SAVING_REPLAY_SAVEGAME_TO_CONSOLE)
{
pTextLabel = "SG_SGN_SV_RPLY_A";
}
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, pTextLabel, FE_WARNING_YES_NO);
NumberOfButtons = 2;
}
break;
case SAVE_GAME_DIALOG_DEVICE_SELECTION :
// TCRHERE
// if ms_bDisplayDeviceHasBeenRemovedMessageNextTime
// The selected storage device has been removed. Do you want to select a new storage device?
// else
// You do not currently have a storage device selected. Do you want to select a storage device now?
if (CSavegameDevices::GetDisplayDeviceHasBeenRemovedMessageNextTime())
{
bDisplayingTheRemovedDeviceMessage = true;
// The selected storage device has been removed. Do you want to select a new storage device?
if (CGenericGameStorage::GetSaveOperation() == OPERATION_AUTOSAVING)
{
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_DEV_REM_AUTO", FE_WARNING_YES_NO);
}
else
{
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_DEVICE_REM", FE_WARNING_YES_NO);
}
}
else
{
/*
if (CGenericGameStorage::GetSaveOperation() == OPERATION_AUTOSAVING)
{
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_DEVICE_AUTO", FE_WARNING_YES_NO);
}
else
{
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_DEVICE", FE_WARNING_YES_NO);
}
*/
// Bug 109823 says it would be better if there was no dialog before the device selection blade appears
// I'll see if it's still okay to display the "device has been removed" message above
MessageToDisplay = SAVE_GAME_DIALOG_NONE;
}
NumberOfButtons = 2;
break;
case SAVE_GAME_DIALOG_DONT_SELECT_DEVICE_TRY_AGAIN :
// You have not selected a storage device. You will need to select a storage device in order to save game progress. Do you want to select one now?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_SEL_DEV_AGN", FE_WARNING_YES_NO);
NumberOfButtons = 2;
break;
case SAVE_GAME_DIALOG_FREE_SPACE_CHECK :
{
#if __PPU
// Change SG_SPACE_PS3 to say "You need an extra ~1~KB to save into this slot. Try overwriting an existing save game in another slot or quit the game and free the required space."
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, "", "SG_SPACE_PS3", FE_WARNING_OK, true, NumberToInsertInMessage);
NumberOfButtons = 1;
#else
// You need an extra ~1~KB to save the game. Do you want to select another storage device and attempt to save again?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, "", "SG_SPACE_360", FE_WARNING_YES_NO, true, NumberToInsertInMessage);
NumberOfButtons = 2;
#endif
}
break;
case SAVE_GAME_DIALOG_NO_FREE_SPACE_AT_START_OF_GAME :
{
#if __PPU
// Change SG_NO_SPCE_PS3 to say "You need an extra ~1~KB of hard disk space for save game data. Please quit the game and free space on your hard disk."
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, "", "SG_NO_SPCE_PS3", FE_WARNING_OK, true, NumberToInsertInMessage);
NumberOfButtons = 1;
#else
// There is not enough space to save on the selected storage device. Do you want to select another storage device?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, "", "SG_NO_SPCE_360", FE_WARNING_YES_NO);
NumberOfButtons = 2;
#endif
}
break;
// ******** User Cancelled ********
/*
case SAVE_GAME_DIALOG_SCAN_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "F_SCAN", FE_WARNING_ACCEPT);
break;
case SAVE_GAME_DIALOG_LOAD_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "F_LOAD", FE_WARNING_ACCEPT);
break;
case SAVE_GAME_DIALOG_AUTOSAVE_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "F_ASAVE", FE_WARNING_ACCEPT);
break;
case SAVE_GAME_DIALOG_SAVE_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "F_SAVE", FE_WARNING_ACCEPT);
break;
*/
// ******* Errors *******
case SAVE_GAME_DIALOG_NONE :
// CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "ERROR_NONE", FE_WARNING_ACCEPT);
break;
case SAVE_GAME_DIALOG_DEVICE_SELECTION_FAILED :
case SAVE_GAME_DIALOG_DEVICE_SELECTION_FAILED2 :
case SAVE_GAME_DIALOG_DEVICE_SELECTION_FAILED3 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_DEV_SEL_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_BEGIN_FREE_SPACE_CHECK_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_SPCHK_FAILED", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_FREE_SPACE_CHECK_FAILED1 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_SPCHK_FAILED", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_FREE_SPACE_CHECK_FAILED2 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_SPCHK_FAILED", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_DELETE_FROM_LIST_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_DEL_LST_FAIL", FE_WARNING_OK);
break;
/*
case SAVE_GAME_DIALOG_PLAYER_DOESNT_WANT_TO_FREE_SPACE :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "DONT_FREE_SPACE", FE_WARNING_ACCEPT);
break;
*/
case SAVE_GAME_DIALOG_BEGIN_ENUMERATION_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_ENUM_FAILED", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_ENUMERATION_FAILED1 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_ENUM_FAILED", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_ENUMERATION_FAILED2 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_ENUM_FAILED", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_BEGIN_SAVE_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_CHKSAVE_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_SAVE_FAILED1 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_CHKSAVE_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_SAVE_FAILED2 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_CHKSAVE_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_BEGIN_GET_FILE_MODIFIED_TIME_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_BGNTIME_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_GET_FILE_MODIFIED_TIME_FAILED1 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_CHKTIME_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_GET_FILE_MODIFIED_TIME_FAILED2 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_CHKTIME_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_BEGIN_ICON_SAVE_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_CHKSAVE_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_ICON_SAVE_FAILED1 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_CHKSAVE_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_ICON_SAVE_FAILED2 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_CHKSAVE_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_BEGIN_GET_CREATOR_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_BGNLOAD_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_GET_CREATOR_FAILED1 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_BGNLOAD_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_GET_CREATOR_FAILED2 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_BGNLOAD_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_PLAYER_IS_NOT_CREATOR :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_NOT_CREATOR", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_BEGIN_LOAD_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_BGNLOAD_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_LOAD_BUFFER_SIZE_MISMATCH :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_BUFFSIZE_DIF", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_LOAD_FAILED1 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_CHKLOAD_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_LOAD_FAILED2 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_CHKLOAD_FAIL", FE_WARNING_OK);
break;
/*
case SAVE_GAME_DIALOG_BEGIN_GET_FILE_TIME_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "GET_TIME_FAILED", FE_WARNING_ACCEPT);
break;
case SAVE_GAME_DIALOG_CHECK_GET_FILE_TIME_FAILED1 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "GET_TIME_FAILED1", FE_WARNING_ACCEPT);
break;
case SAVE_GAME_DIALOG_CHECK_GET_FILE_TIME_FAILED2 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "GET_TIME_FAILED2", FE_WARNING_ACCEPT);
break;
*/
case SAVE_GAME_DIALOG_BEGIN_GET_FILE_SIZE_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "GET_SIZE_FAILED", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_GET_FILE_SIZE_FAILED1 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "GET_SIZE_FAILED", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CHECK_GET_FILE_SIZE_FAILED2 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "GET_SIZE_FAILED", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_ALLOCATE_MEMORY_FOR_LOAD_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_BGNLOAD_FAIL", FE_WARNING_OK); // Load failed. Please check your storage device and try again.
break;
case SAVE_GAME_DIALOG_ALLOCATE_MEMORY_FOR_SAVE_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_CHKSAVE_FAIL", FE_WARNING_OK); // Save failed. Please check your storage device and try again.
break;
case SAVE_GAME_DIALOG_SAVE_BLOCK_DATA_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_CHKSAVE_FAIL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_PLAYER_HAS_SIGNED_OUT : // maybe should remove this completely
// If player signs out then the game will restart immediately so don't bother
// displaying a warning message and giving the player another chance to load/save
MessageToDisplay = SAVE_GAME_DIALOG_NONE;
// CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_SIGN_OUT", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_SELECTED_DEVICE_HAS_BEEN_REMOVED :
if ( (CGenericGameStorage::GetSaveOperation() == OPERATION_SCANNING_CONSOLE_FOR_LOADING_SAVEGAMES)
|| (CGenericGameStorage::GetSaveOperation() == OPERATION_SCANNING_CONSOLE_FOR_SAVING_SAVEGAMES)
|| (CGenericGameStorage::GetSaveOperation() == OPERATION_ENUMERATING_PHOTOS)
|| (CGenericGameStorage::GetSaveOperation() == OPERATION_ENUMERATING_SAVEGAMES) )
{
// This message is immediately followed by another message saying
// "The selected storage device has been removed. Do you want to select a new storage device?"
// so remove this one
MessageToDisplay = SAVE_GAME_DIALOG_NONE;
}
else
{
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_DEV_REM", FE_WARNING_OK);
}
break;
case SAVE_GAME_DIALOG_OVERWRITE_EXISTING_AUTOSAVE :
CSavegameList::GetDisplayNameAndDateForThisSaveGameItem(CSavegameList::GetAutosaveSlotNumberForCurrentEpisode(), cSaveGameName, cSaveGameDate, &bSlotIsEmpty, &bSlotIsDamaged);
Assertf(!bSlotIsEmpty, "CSavegameDialogScreens::HandleSaveGameDialogBox - SAVE_GAME_DIALOG_OVERWRITE_EXISTING_AUTOSAVE - shouldn't be trying to display this message if the slot is empty");
if (bSlotIsEmpty || bSlotIsDamaged)
{
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_AUTO_SL_OVR", FE_WARNING_YES_NO);
}
else
{
// The autosave slot already contains "~a~" saved on ~a~. Do you want to overwrite the data in this slot with your current game progress?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_AUTO_SL_OVR2", FE_WARNING_YES_NO, false, -1, cSaveGameName, cSaveGameDate);
}
NumberOfButtons = 2;
break;
case SAVE_GAME_DIALOG_AUTOSAVE_FAILED_TRY_AGAIN :
// Autosave failed. Do you want to retry?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_AUTO_FAILED", FE_WARNING_YES_NO);
NumberOfButtons = 2;
break;
case SAVE_GAME_DIALOG_AUTOSAVE_OFF_ARE_YOU_SURE :
// Are you sure? Autosaving will be turned off.
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_AUTOOFF_SURE", FE_WARNING_YES_NO);
NumberOfButtons = 2;
break;
case SAVE_GAME_DIALOG_AUTOSAVE_SWITCHED_OFF :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_AUTO_OFF", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CANT_LOAD_A_DAMAGED_SAVE :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_LOAD_DAM", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_LOAD_WILL_OVERWRITE :
// Are you sure you want to load this save game data? Doing so will lose any unsaved game progress.
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_LOAD_OVRWRT", FE_WARNING_YES_NO);
NumberOfButtons = 2;
break;
/*
case SAVE_GAME_DIALOG_LOAD_ARE_YOU_SURE :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_LOADOVR_SURE", FE_WARNING_YES_NO);
NumberOfButtons = 2;
break;
*/
case SAVE_GAME_DIALOG_DELETE_ARE_YOU_SURE :
#if RSG_ORBIS
Assertf( (NumberToInsertInMessage >= 1) && (NumberToInsertInMessage <= TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES+NUM_BACKUPSAVE_SLOTS), "CSavegameDialogScreens::HandleSaveGameDialogBox - SAVE_GAME_DIALOG_DELETE_ARE_YOU_SURE - expected the slot number to be between 1 and %d (inclusive)", TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES+NUM_BACKUPSAVE_SLOTS);
#else
Assertf( (NumberToInsertInMessage >= 1) && (NumberToInsertInMessage <= TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES), "CSavegameDialogScreens::HandleSaveGameDialogBox - SAVE_GAME_DIALOG_DELETE_ARE_YOU_SURE - expected the slot number to be between 1 and %d (inclusive)", TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES);
#endif
CSavegameList::GetDisplayNameAndDateForThisSaveGameItem( (NumberToInsertInMessage-1), cSaveGameName, cSaveGameDate, &bSlotIsEmpty, &bSlotIsDamaged);
Assertf(!bSlotIsEmpty, "CSavegameDialogScreens::HandleSaveGameDialogBox - SAVE_GAME_DIALOG_DELETE_ARE_YOU_SURE - shouldn't be trying to display this message if the slot is empty"); // && !bSlotIsDamaged
if (bSlotIsDamaged)
{
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_DEL_DAM", FE_WARNING_YES_NO, false, -1);
}
else
{
// The selected slot contains "~a~" saved on ~a~. Do you want to delete the save game data in this slot?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_DEL", FE_WARNING_YES_NO, false, -1, cSaveGameName, cSaveGameDate );
}
NumberOfButtons = 2;
break;
#if __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
case SAVE_GAME_DIALOG_UPLOAD_ARE_YOU_SURE :
Assertf( (NumberToInsertInMessage >= 1) && (NumberToInsertInMessage <= TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES), "CSavegameDialogScreens::HandleSaveGameDialogBox - expected the slot number to be between 1 and %d (inclusive)", TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES);
CSavegameList::GetDisplayNameAndDateForThisSaveGameItem( (NumberToInsertInMessage-1), cSaveGameName, cSaveGameDate, &bSlotIsEmpty, &bSlotIsDamaged);
Assertf(!bSlotIsEmpty && !bSlotIsDamaged, "CSavegameDialogScreens::HandleSaveGameDialogBox - SAVE_GAME_DIALOG_UPLOAD_ARE_YOU_SURE - shouldn't be trying to display this message if the slot is empty or damaged");
// The selected slot contains "~a~" saved on ~a~. Do you want to upload the save game data in this slot to the Social Club?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_UPLD", FE_WARNING_YES_NO, false, -1, cSaveGameName, cSaveGameDate );
NumberOfButtons = 2;
break;
#endif // __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
#if __ALLOW_EXPORT_OF_SP_SAVEGAMES
case SAVE_GAME_DIALOG_CANT_EXPORT_A_DAMAGED_SAVE :
// I still need to add this text to the american text
// maybe x:\gta5\assets_ng\gametext\NG_TU_Sub_35_0\American\americanCode.txt
// or whatever the latest TU is.
// The selected save game data cannot be exported/migrated because it is damaged.
SAVEGAME_MESSAGES_CHECK_TEXT_LABEL_EXISTS("SG_PROC_DAM")
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_PROC_DAM", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CONFIRM_EXPORT_OF_SAVEGAME :
Assertf( (NumberToInsertInMessage >= 1) && (NumberToInsertInMessage <= TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES), "CSavegameDialogScreens::HandleSaveGameDialogBox - expected the slot number to be between 1 and %d (inclusive)", TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES);
CSavegameList::GetDisplayNameAndDateForThisSaveGameItem( (NumberToInsertInMessage-1), cSaveGameName, cSaveGameDate, &bSlotIsEmpty, &bSlotIsDamaged);
Assertf(!bSlotIsEmpty && !bSlotIsDamaged, "CSavegameDialogScreens::HandleSaveGameDialogBox - SAVE_GAME_DIALOG_CONFIRM_EXPORT_OF_SAVEGAME - shouldn't be trying to display this message if the slot is empty or damaged");
#if __REMOVE_TIME_FROM_DATE_TIME_STRINGS_IN_EXPORT_MESSAGES
// Remove the time from the date/time string
LengthOfSaveGameDate = istrlen(cSaveGameDate);
if (savegameVerifyf(LengthOfSaveGameDate == 14, "CSavegameDialogScreens::HandleSaveGameDialogBox - expected the string containing the date/time ('%s') to be 14 characters long", cSaveGameDate))
{
if (savegameVerifyf(cSaveGameDate[8] == ' ', "CSavegameDialogScreens::HandleSaveGameDialogBox - expected the 9th character of the string containing the date/time ('%s') to be a space", cSaveGameDate))
{
cSaveGameDate[8] = '\0';
}
}
#endif // __REMOVE_TIME_FROM_DATE_TIME_STRINGS_IN_EXPORT_MESSAGES
SAVEGAME_MESSAGES_CHECK_TEXT_LABEL_EXISTS("SG_PROC")
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_PROC", FE_WARNING_YES_NO, false, -1, cSaveGameName, cSaveGameDate );
NumberOfButtons = 2;
break;
#endif // __ALLOW_EXPORT_OF_SP_SAVEGAMES
#if __ALLOW_IMPORT_OF_SP_SAVEGAMES
case SAVE_GAME_DIALOG_IMPORT_WILL_OVERWRITE_SLOT :
#if RSG_ORBIS
Assertf( (NumberToInsertInMessage >= 1) && (NumberToInsertInMessage <= TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES+NUM_BACKUPSAVE_SLOTS), "CSavegameDialogScreens::HandleSaveGameDialogBox - expected the slot number to be between 1 and %d (inclusive)", TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES+NUM_BACKUPSAVE_SLOTS);
#else
Assertf( (NumberToInsertInMessage >= 1) && (NumberToInsertInMessage <= TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES), "CSavegameDialogScreens::HandleSaveGameDialogBox - expected the slot number to be between 1 and %d (inclusive)", TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES);
#endif
CSavegameList::GetDisplayNameAndDateForThisSaveGameItem( (NumberToInsertInMessage-1), cSaveGameName, cSaveGameDate, &bSlotIsEmpty, &bSlotIsDamaged);
Assertf(!bSlotIsEmpty, "CSavegameDialogScreens::HandleSaveGameDialogBox - SAVE_GAME_DIALOG_IMPORT_WILL_OVERWRITE_SLOT - shouldn't be trying to display this message if the slot is empty");
if (bSlotIsEmpty || bSlotIsDamaged)
{ // I still need to add this text to americanError.txt or americanCode.txt
// The selected slot contains damaged save game data. Do you want to overwrite the data in this slot with the imported save game data?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_IMPORT_OVRWRT", FE_WARNING_YES_NO, false, -1);
}
else
{ // I still need to add this text to americanCode.txt
// The selected slot already contains "~a~" saved on ~a~. Do you want to overwrite the data in this slot with the imported save game data?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_IMPORT_OVRWRT2", FE_WARNING_YES_NO, false, -1, cSaveGameName, cSaveGameDate );
}
NumberOfButtons = 2;
break;
case SAVE_GAME_DIALOG_IMPORT_ARE_YOU_SURE :
// I still need to add this text to americanCode.txt
// Are you sure you want to import the save game data in to a new slot?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_IMPORT_NEW", FE_WARNING_YES_NO, false, -1);
NumberOfButtons = 2;
break;
case SAVE_GAME_DIALOG_IMPORT_OF_SAVEGAME_SUCCEEDED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_IMPORT_SUCCESS", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_IMPORT_OF_SAVEGAME_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_IMPORT_FAILED", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_LOADING_OF_IMPORTED_SAVEGAME_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_IMPORT_LOAD_FAILED", FE_WARNING_OK);
break;
#endif // __ALLOW_IMPORT_OF_SP_SAVEGAMES
case SAVE_GAME_DIALOG_SAVE_WILL_OVERWRITE_SLOT :
#if RSG_ORBIS
Assertf( (NumberToInsertInMessage >= 1) && (NumberToInsertInMessage <= TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES+NUM_BACKUPSAVE_SLOTS), "CSavegameDialogScreens::HandleSaveGameDialogBox - expected the slot number to be between 1 and %d (inclusive)", TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES+NUM_BACKUPSAVE_SLOTS);
#else
Assertf( (NumberToInsertInMessage >= 1) && (NumberToInsertInMessage <= TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES), "CSavegameDialogScreens::HandleSaveGameDialogBox - expected the slot number to be between 1 and %d (inclusive)", TOTAL_NUMBER_OF_SLOTS_FOR_SAVEGAMES);
#endif
CSavegameList::GetDisplayNameAndDateForThisSaveGameItem( (NumberToInsertInMessage-1), cSaveGameName, cSaveGameDate, &bSlotIsEmpty, &bSlotIsDamaged);
Assertf(!bSlotIsEmpty, "CSavegameDialogScreens::HandleSaveGameDialogBox - SAVE_GAME_DIALOG_SAVE_WILL_OVERWRITE_SLOT - shouldn't be trying to display this message if the slot is empty");
if (bSlotIsEmpty || bSlotIsDamaged)
{
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_SAVE_OVRWRT", FE_WARNING_YES_NO, false, -1);
}
else
{
// Slot ~1~ already contains "~a~" saved on ~a~. Do you want to overwrite the data in this slot with your current game progress?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_SAVE_OVRWRT2", FE_WARNING_YES_NO, false, -1, cSaveGameName, cSaveGameDate );
}
NumberOfButtons = 2;
break;
case SAVE_GAME_DIALOG_SAVE_ARE_YOU_SURE :
// Are you sure you want to save your current game progress in slot ~1~?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_SAVEOVR_SURE", FE_WARNING_YES_NO, false, -1);
NumberOfButtons = 2;
break;
case SAVE_GAME_DIALOG_TOO_MANY_SAVE_FILES_IN_FOLDER :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_TOOMANYFILES", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_UNEXPECTED_FILENAME :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_FILENAME_ERR", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_TWO_SAVE_FILES_WITH_SAME_NAME :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_FILENAME_DUP", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_WRONG_VERSION :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_VERS_ERR", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_EXTRA_CONTENT_ERROR :
// CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_EX_CONT_ERR", FE_WARNING_OK, false, -1, true); // Last flag true means list missing extra content
if (CSavegameAutoload::IsPerformingAutoLoadAtStartOfGame())
{ // The downloadable content required for this autoload is not available.~n~Press ~PAD_A~ to start a new game of GTA IV.
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "FE_NODLC3", FE_WARNING_OK);
}
else
{
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "FE_NODLC2", FE_WARNING_OK);
}
break;
// ******* AutoLoad *******
case SAVE_GAME_DIALOG_AUTOLOAD_SIGN_IN :
#if RSG_DURANGO
if(sysUserList::GetInstance().GetNumberOfDetectedUsersInRoom() != 0)
{
// You are not paired with a controller. Please ensure the controller is visible to Kinect or select an Account from the Picker. Do you want to select an Account now?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_ALD_PAIRPAD", FE_WARNING_YES_NO, true, NumberToInsertInMessage);
}
else if(sysUserList::GetInstance().GetNumberOfUsersLoggedInOnConsole() != 0)
{
// You are not paired with a controller. You will need to pair a controller to save your progress and to be awarded Achievements. Do want you pair a controller now?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_ALD_PAIRPAD_MANUAL", FE_WARNING_YES_NO, true, NumberToInsertInMessage);
}
else
#endif // RSG_DURANGO
{
// You are not signed in. You will need to sign in to save your progress and to be awarded Achievements. Do you want to sign in now?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_ALD_SIGNIN", FE_WARNING_YES_NO, true, NumberToInsertInMessage);
}
NumberOfButtons = 2;
break;
// case SAVE_GAME_DIALOG_AUTOLOAD_DONT_SIGN_IN_SURE :
// CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_ALD_SIGNSURE", FE_WARNING_YES_NO, true, NumberToInsertInMessage);
// NumberOfButtons = 2;
// break;
case SAVE_GAME_DIALOG_AUTOLOAD_DONT_SIGN_IN_OK :
// CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_ALD_SIGN_OK", FE_WARNING_OK, true, NumberToInsertInMessage);
MessageToDisplay = SAVE_GAME_DIALOG_NONE;
break;
case SAVE_GAME_DIALOG_AUTOLOAD_NOT_SIGNED_IN_TRY_AGAIN :
#if RSG_DURANGO
if(sysUserList::GetInstance().GetNumberOfDetectedUsersInRoom() != 0)
{
// You are not paired with a controller. Please ensure the controller is visible to Kinect or select an Account from the Picker. Do you want to select an Account now?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_ALD_PAIRPAD_AGN", FE_WARNING_YES_NO, true, NumberToInsertInMessage);
}
else if(sysUserList::GetInstance().GetNumberOfUsersLoggedInOnConsole() != 0)
{
// You are not paired with a controller. You will need to pair a controller to save your progress and to be awarded Achievements. Do want you pair a controller now?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_ALD_PAIRPAD_MANUAL_AGN", FE_WARNING_YES_NO, true, NumberToInsertInMessage);
}
else
#endif // RSG_DURANGO
{
// You have not signed in. You will need to sign in to save your progress and to be awarded Achievements. Do you want to sign in now?
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_ALD_SIGN_AGN", FE_WARNING_YES_NO, true, NumberToInsertInMessage);
}
NumberOfButtons = 2;
break;
case SAVE_GAME_DIALOG_MOST_RECENT_SAVE_IS_DAMAGED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_ALD_DAM", FE_WARNING_OK);
break;
#if RSG_PC
case SAVE_GAME_DIALOG_MOST_RECENT_PC_SAVE_IS_DAMAGED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_ALD_DAM_PC", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_CANT_LOAD_A_DAMAGED_PC_SAVE :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_LOAD_DAM_PC", FE_WARNING_OK);
break;
#endif // RSG_PC
case SAVE_GAME_DIALOG_AUTOLOAD_NO_PAD_CONNECTED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "NO_PAD", FE_WARNING_NONE);
NumberOfButtons = 0;
break;
case SAVE_GAME_DIALOG_AUTOLOAD_MULTIPLE_PROFILES :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "MULT_PROF", FE_WARNING_NONE);
NumberOfButtons = 0;
break;
/*
#if __PPU
case SAVE_GAME_DIALOG_FLASHING_HDD_LIGHT_WARNING :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "PS3_HDD_LIGHT", FE_WARNING_NONE);
NumberOfButtons = 0;
break;
#endif
*/
case SAVE_GAME_DIALOG_BEGIN_LOCAL_DELETE_FAILED :
case SAVE_GAME_DIALOG_CHECK_LOCAL_DELETE_FAILED1 :
case SAVE_GAME_DIALOG_CHECK_LOCAL_DELETE_FAILED2 :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, "SG_HDNG", "SG_DEL_FAIL", FE_WARNING_OK); // SG_HDG_DEL
break;
case SAVE_GAME_DIALOG_BEGIN_CLOUD_DELETE_FAILED :
case SAVE_GAME_DIALOG_CHECK_CLOUD_DELETE_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, "SG_HDNG", "SG_DEL_C_FAIL", FE_WARNING_OK); // SG_HDG_DEL
break;
case SAVE_GAME_DIALOG_BEGIN_CLOUD_LOAD_PHOTO_LIST_FAILED :
case SAVE_GAME_DIALOG_CHECK_CLOUD_LOAD_PHOTO_LIST_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_PH_LS_CL_FL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_BEGIN_CLOUD_LOAD_JPEG_FAILED :
case SAVE_GAME_DIALOG_CHECK_CLOUD_LOAD_JPEG_FAILED :
case SAVE_GAME_DIALOG_BEGIN_CLOUD_LOAD_JSON_FAILED :
case SAVE_GAME_DIALOG_CHECK_CLOUD_LOAD_JSON_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, "SG_HDNG", "SG_PH_LD_CL_FL", FE_WARNING_OK); // SG_HDG_L_PH_CL
break;
case SAVE_GAME_DIALOG_BEGIN_LOCAL_LOAD_JPEG_FAILED :
case SAVE_GAME_DIALOG_CHECK_LOCAL_LOAD_JPEG_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, "SG_HDNG", "SG_PH_LD_LC_FL", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_BEGIN_CLOUD_SAVE_JPEG_FAILED :
case SAVE_GAME_DIALOG_CHECK_CLOUD_SAVE_JPEG_FAILED :
case SAVE_GAME_DIALOG_BEGIN_CLOUD_SAVE_JSON_FAILED :
case SAVE_GAME_DIALOG_CHECK_CLOUD_SAVE_JSON_FAILED :
case SAVE_GAME_DIALOG_BEGIN_UGC_PHONE_PHOTO_SAVE_FAILED :
case SAVE_GAME_DIALOG_CHECK_UGC_PHONE_PHOTO_SAVE_FAILED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, "SG_HDNG", "SG_PH_SV_CL_FL", FE_WARNING_OK); // SG_HDG_S_PH_CL
break;
case SAVE_GAME_DIALOG_LIMELIGHT_UGC_CREATE_ALREADY_PENDING :
DisplayRockstarDevWarning("SG_PH_UGC_PN");
break;
case SAVE_GAME_DIALOG_LIMELIGHT_UGC_CREATION_FAILED_TO_START :
DisplayRockstarDevWarning("SG_PH_UGC_CR1");
break;
case SAVE_GAME_DIALOG_LIMELIGHT_UGC_CREATION_FAILED :
DisplayRockstarDevWarning("SG_PH_UGC_CR2", NULL, NULL, true, CPhotoManager::GetNetStatusResultCodeForUploadLocalPhoto());
break;
case SAVE_GAME_DIALOG_LIMELIGHT_GET_UGC_CREATE_CONTENT_ID_FAILED :
DisplayRockstarDevWarning("SG_PH_UGC_ID");
break;
case SAVE_GAME_DIALOG_LIMELIGHT_GET_UGC_CREATE_RESULT_FAILED :
DisplayRockstarDevWarning("SG_PH_UGC_RES", CPhotoManager::GetUGCContentIdForUploadLocalPhoto());
break;
case SAVE_GAME_DIALOG_LIMELIGHT_UGC_METADATA_PARSE_ERROR :
DisplayRockstarDevWarning("SG_PH_UGC_PRS", CPhotoManager::GetUGCContentIdForUploadLocalPhoto());
break;
case SAVE_GAME_DIALOG_LIMELIGHT_CREATE_TASK_FAILED :
DisplayRockstarDevWarning("SG_PH_LL_TSK", CPhotoManager::GetUGCContentIdForUploadLocalPhoto());
break;
case SAVE_GAME_DIALOG_LIMELIGHT_CONFIGURE_FAILED :
DisplayRockstarDevWarning("SG_PH_LL_CFG", CPhotoManager::GetUGCContentIdForUploadLocalPhoto(), CPhotoManager::GetLimelightAuthTokenForUploadLocalPhoto());
break;
case SAVE_GAME_DIALOG_LIMELIGHT_ADD_PARALLEL_TASK_FAILED :
DisplayRockstarDevWarning("SG_PH_LL_PRL", CPhotoManager::GetUGCContentIdForUploadLocalPhoto(), CPhotoManager::GetLimelightAuthTokenForUploadLocalPhoto());
break;
case SAVE_GAME_DIALOG_LIMELIGHT_UPLOAD_FAILED :
DisplayRockstarDevWarning("SG_PH_LL_UP", CPhotoManager::GetUGCContentIdForUploadLocalPhoto(), CPhotoManager::GetLimelightAuthTokenForUploadLocalPhoto(), true, CPhotoManager::GetNetStatusResultCodeForUploadLocalPhoto());
break;
case SAVE_GAME_DIALOG_LIMELIGHT_UGC_PUBLISH_FAILED_TO_START :
DisplayRockstarDevWarning("SG_PH_UGC_PB1", CPhotoManager::GetUGCContentIdForUploadLocalPhoto());
break;
case SAVE_GAME_DIALOG_LIMELIGHT_UGC_PUBLISH_FAILED :
DisplayRockstarDevWarning("SG_PH_UGC_PB2", CPhotoManager::GetUGCContentIdForUploadLocalPhoto(), NULL, true, CPhotoManager::GetNetStatusResultCodeForUploadLocalPhoto());
break;
case SAVE_GAME_DIALOG_MISSION_REPEAT_MAKES_A_SAVE :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_RPT_SAVES", FE_WARNING_YES_NO);
NumberOfButtons = 2;
break;
case SAVE_GAME_DIALOG_PC_BENCHMARK_TEST_MAKES_A_SAVE :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_BNCH_SAVES", FE_WARNING_YES_NO);
NumberOfButtons = 2;
break;
#if __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
case SAVE_GAME_DIALOG_LOADING_LOCAL_SAVEGAME_BEFORE_UPLOADING_TO_CLOUD :
// Loading the local save game in order to upload it to the Social Club.
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_UPLD_LD", FE_WARNING_NONE);
NumberOfButtons = 0;
break;
case SAVE_GAME_DIALOG_UPLOADING_SAVEGAME_TO_CLOUD :
// Uploading the save game data to the Social Club.
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_UPLD_SV", FE_WARNING_NONE);
NumberOfButtons = 0;
break;
case SAVE_GAME_DIALOG_UPLOAD_OF_SAVEGAME_SUCCEEDED :
// The save game data has been successfully uploaded to the Social Club.
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, "SG_HDNG", "SG_UPLD_SUCCESS", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_BEGIN_CLOUD_SAVE_SP_SAVEGAME_FAILED :
case SAVE_GAME_DIALOG_CHECK_CLOUD_SAVE_SP_SAVEGAME_FAILED :
// Failed to save single player save game to the Social Club. The Rockstar game services are unavailable right now. Please try again later.
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, "SG_HDNG", "SG_UPLD_FAILED", FE_WARNING_OK);
break;
#endif // __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
case SAVE_GAME_DIALOG_DELETION_OF_SAVEGAME_SUCCEEDED :
// The save game data has been successfully deleted.
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, "SG_HDNG", "SG_DEL_SUCCESS", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_PLAYER_HAS_SKIPPED_AUTOLOAD :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, "SG_HDNG", "SG_AUTO_LD_SKIP", FE_WARNING_OK);
break;
case SAVE_GAME_DIALOG_OLDEST_UPLOADED_PHOTO_WILL_BE_DELETED :
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, DialogBoxHeading, "SG_PH_OLDEST", FE_WARNING_YES_NO, true, NumberToInsertInMessage);
NumberOfButtons = 2;
break;
default :
Assertf(0, "CSavegameDialogScreens::HandleSaveGameDialogBox - unexpected MessageToDisplay value");
break;
}
#if RSG_ORBIS
if (CGenericGameStorage::GetSaveOperation() == OPERATION_CHECKING_FOR_FREE_SPACE_AT_START_OF_GAME)
{
savegameDebugf1("CSavegameDialogScreens::HandleSaveGameDialogBox - Error message is %d but can't display it now so setting to SAVE_GAME_DIALOG_NONE\n", MessageToDisplay);
savegameWarningf("CSavegameDialogScreens::HandleSaveGameDialogBox - don't display save game error messages during free space checks at start of game");
MessageToDisplay = SAVE_GAME_DIALOG_NONE;
}
#endif
if (SAVE_GAME_DIALOG_NONE == MessageToDisplay)
{
*pReturnSelection = true;
CWarningScreen::Remove();
return true;
}
if (NumberOfButtons == 0)
{ // Doesn't really matter what is returned here
// This is for the cases where the game displays a warning and doesn't expect the player to press A or B
*pReturnSelection = false;
return false;
}
eWarningButtonFlags result = CWarningScreen::CheckAllInput(true, CHECK_INPUT_OVERRIDE_FLAG_RESTART_SAVED_GAME_STATE);
if (result == FE_WARNING_OK || result == FE_WARNING_YES || result == FE_WARNING_SELECT)
{
if (bDisplayingTheRemovedDeviceMessage)
{ // Only display the removed device message the first time after the device has been removed
CSavegameDevices::SetAllowDeviceHasBeenRemovedMessageToBeDisplayed(false);
}
*pReturnSelection = true;
CWarningScreen::Remove();
ms_NumberOfFramesToRenderBlackScreen = CGenericGameStorage::ms_NumberOfFramesToDisplayBlackScreenAfterWarningMessage;
return true;
}
if (NumberOfButtons == 2)
{
if (result == FE_WARNING_NO)
{
if (bDisplayingTheRemovedDeviceMessage)
{ // Only display the removed device message the first time after the device has been removed
CSavegameDevices::SetAllowDeviceHasBeenRemovedMessageToBeDisplayed(false);
}
*pReturnSelection = false;
CWarningScreen::Remove();
ms_NumberOfFramesToRenderBlackScreen = CGenericGameStorage::ms_NumberOfFramesToDisplayBlackScreenAfterWarningMessage;
return true;
}
}
return false;
}
void CSavegameDialogScreens::DisplayRockstarDevWarning(const char *pStringToDisplay, const char *pSubString1, const char *pSubString2, bool bInsertNumber, int numberToInsert)
{
if (!NetworkInterface::IsRockstarDev())
{
pStringToDisplay = "SG_PH_SV_CL_FL";
pSubString1 = NULL;
pSubString2 = NULL;
bInsertNumber = false;
numberToInsert = -1;
}
CWarningScreen::SetMessageWithHeader(WARNING_MESSAGE_STANDARD, "SG_HDNG", pStringToDisplay, FE_WARNING_OK, bInsertNumber, numberToInsert, pSubString1, pSubString2);
}
void CLoadConfirmationMessage::Clear()
{
ms_SlotForPlayerConfirmation = -1;
ms_bSlotIsDamaged = false;
ms_TypeOfPlayerConfirmationCheck = LOAD_CONFIRMATION_NONE;
ms_LoadMessageType = LOAD_MESSAGE_LOAD;
}
void CLoadConfirmationMessage::Begin(s32 SlotNumber, eLoadMessageType loadMessageType)
{
ms_SlotForPlayerConfirmation = SlotNumber;
ms_bSlotIsDamaged = CSavegameList::GetIsDamaged(ms_SlotForPlayerConfirmation);
ms_TypeOfPlayerConfirmationCheck = LOAD_CONFIRMATION_DISPLAY_MESSAGE;
ms_LoadMessageType = loadMessageType;
}
ePlayerConfirmationReturn CLoadConfirmationMessage::Process()
{
bool ReturnSelection = false;
ePlayerConfirmationReturn ReturnValue = PLAYER_CONFIRMATION_CHECK_IN_PROGRESS;
if (CSavegameUsers::HasPlayerJustSignedOut())
{
ms_SlotForPlayerConfirmation = -1;
ms_TypeOfPlayerConfirmationCheck = LOAD_CONFIRMATION_PLAYER_HAS_SIGNED_OUT;
}
if (CSavegameDevices::HasSelectedDeviceJustBeenRemoved())
{
ms_SlotForPlayerConfirmation = -1;
ms_TypeOfPlayerConfirmationCheck = LOAD_CONFIRMATION_STORAGE_DEVICE_REMOVED;
}
switch (ms_TypeOfPlayerConfirmationCheck)
{
case LOAD_CONFIRMATION_NONE :
return NO_PLAYER_CONFIRMATION_CHECK_IN_PROGRESS;
case LOAD_CONFIRMATION_DISPLAY_MESSAGE :
{
s32 slotNumberToDisplay = 0;
u32 messageToDisplay = SAVE_GAME_DIALOG_LOAD_WILL_OVERWRITE;
switch (ms_LoadMessageType)
{
case LOAD_MESSAGE_LOAD :
if (ms_bSlotIsDamaged)
{
messageToDisplay = SAVE_GAME_DIALOG_CANT_LOAD_A_DAMAGED_SAVE;
}
else
{
messageToDisplay = SAVE_GAME_DIALOG_LOAD_WILL_OVERWRITE;
}
break;
case LOAD_MESSAGE_DELETE :
messageToDisplay = SAVE_GAME_DIALOG_DELETE_ARE_YOU_SURE;
slotNumberToDisplay = ms_SlotForPlayerConfirmation + 1; // - FIRST_MANUAL_SLOT;
Assertf(slotNumberToDisplay > 0, "CLoadConfirmationMessage::Process - delete slot to display should be greater than 0");
break;
#if __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
case LOAD_MESSAGE_UPLOAD :
messageToDisplay = SAVE_GAME_DIALOG_UPLOAD_ARE_YOU_SURE;
slotNumberToDisplay = ms_SlotForPlayerConfirmation + 1; // - FIRST_MANUAL_SLOT;
Assertf(slotNumberToDisplay > 0, "CLoadConfirmationMessage::Process - upload slot to display should be greater than 0");
break;
#endif // __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
#if __ALLOW_EXPORT_OF_SP_SAVEGAMES
case LOAD_MESSAGE_EXPORT :
if (ms_bSlotIsDamaged)
{
messageToDisplay = SAVE_GAME_DIALOG_CANT_EXPORT_A_DAMAGED_SAVE;
}
else
{
messageToDisplay = SAVE_GAME_DIALOG_CONFIRM_EXPORT_OF_SAVEGAME;
slotNumberToDisplay = ms_SlotForPlayerConfirmation + 1; // - FIRST_MANUAL_SLOT;
Assertf(slotNumberToDisplay > 0, "CLoadConfirmationMessage::Process - export slot to display should be greater than 0");
}
break;
#endif // __ALLOW_EXPORT_OF_SP_SAVEGAMES
}
if (CLiveManager::GetInviteMgr().HasPendingAcceptedInvite())
{
ms_TypeOfPlayerConfirmationCheck = LOAD_CONFIRMATION_NONE;
ReturnValue = NO_PLAYER_CONFIRMATION_CHECK_IN_PROGRESS;
}
#if __ALLOW_EXPORT_OF_SP_SAVEGAMES
else if ( (messageToDisplay == SAVE_GAME_DIALOG_CANT_LOAD_A_DAMAGED_SAVE)
|| (messageToDisplay == SAVE_GAME_DIALOG_CANT_EXPORT_A_DAMAGED_SAVE) )
#else // __ALLOW_EXPORT_OF_SP_SAVEGAMES
else if (messageToDisplay == SAVE_GAME_DIALOG_CANT_LOAD_A_DAMAGED_SAVE)
#endif // __ALLOW_EXPORT_OF_SP_SAVEGAMES
{
if (CSavegameDialogScreens::HandleSaveGameDialogBox(messageToDisplay, slotNumberToDisplay, &ReturnSelection))
{
ms_TypeOfPlayerConfirmationCheck = LOAD_CONFIRMATION_NONE;
ReturnValue = NO_PLAYER_CONFIRMATION_CHECK_IN_PROGRESS;
}
}
else if (CSavegameDialogScreens::HandleSaveGameDialogBox(messageToDisplay, slotNumberToDisplay, &ReturnSelection))
{
ms_TypeOfPlayerConfirmationCheck = LOAD_CONFIRMATION_NONE;
if (LOAD_MESSAGE_DELETE == ms_LoadMessageType)
{
// Default to load in the load game menu after any delete attempt, so if the player clicks on an item loading will be assumed
CPauseMenu::SetPlayerWantsToLoadASavegame();
}
if (ReturnSelection)
{
switch (ms_LoadMessageType)
{
case LOAD_MESSAGE_LOAD :
ReturnValue = PLAYER_CONFIRMATION_CHECK_FINISHED_BEGIN_LOADING;
break;
case LOAD_MESSAGE_DELETE :
ReturnValue = PLAYER_CONFIRMATION_CHECK_FINISHED_BEGIN_DELETING_FROM_LOAD_MENU;
break;
#if __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
case LOAD_MESSAGE_UPLOAD :
ReturnValue = PLAYER_CONFIRMATION_CHECK_FINISHED_BEGIN_UPLOADING;
break;
#endif // __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
#if __ALLOW_EXPORT_OF_SP_SAVEGAMES
case LOAD_MESSAGE_EXPORT :
ReturnValue = PLAYER_CONFIRMATION_CHECK_FINISHED_BEGIN_EXPORTING;
break;
#endif // __ALLOW_EXPORT_OF_SP_SAVEGAMES
}
}
else
{
ReturnValue = NO_PLAYER_CONFIRMATION_CHECK_IN_PROGRESS;
}
}
}
break;
case LOAD_CONFIRMATION_PLAYER_HAS_SIGNED_OUT :
ms_TypeOfPlayerConfirmationCheck = LOAD_CONFIRMATION_NONE;
ReturnValue = PLAYER_CONFIRMATION_CHECK_INTERRUPTED_PLAYER_HAS_SIGNED_OUT;
break;
case LOAD_CONFIRMATION_STORAGE_DEVICE_REMOVED :
if (CSavegameDialogScreens::HandleSaveGameDialogBox(SAVE_GAME_DIALOG_SELECTED_DEVICE_HAS_BEEN_REMOVED, 0, &ReturnSelection))
{
ms_TypeOfPlayerConfirmationCheck = LOAD_CONFIRMATION_NONE;
ReturnValue = PLAYER_CONFIRMATION_CHECK_INTERRUPTED_NEED_TO_RESCAN;
}
break;
default :
Assertf(0, "CLoadConfirmationMessage::Process - unknown ms_TypeOfPlayerConfirmationCheck");
break;
}
return ReturnValue;
}
void CSaveConfirmationMessage::Clear()
{
ms_SlotForPlayerConfirmation = -1;
ms_TypeOfPlayerConfirmationCheck = SAVE_CONFIRMATION_NONE;
ms_SaveMessageType = SAVE_MESSAGE_SAVE;
}
void CSaveConfirmationMessage::Begin(s32 SlotNumber, eSaveMessageType saveMessageType)
{
ms_SlotForPlayerConfirmation = SlotNumber;
ms_TypeOfPlayerConfirmationCheck = SAVE_CONFIRMATION_DISPLAY_MESSAGE;
ms_SaveMessageType = saveMessageType;
}
// If the MU is removed during this function then if the player cancels and goes back to the list of slots
// then the display will still be displaying the contents of the MU. Should probably do a full rescan to update
// the list
ePlayerConfirmationReturn CSaveConfirmationMessage::Process()
{
bool bPlayerHasSignedOut = false;
bool ReturnSelection = false;
ePlayerConfirmationReturn ReturnValue = PLAYER_CONFIRMATION_CHECK_IN_PROGRESS;
if (ms_TypeOfPlayerConfirmationCheck == SAVE_CONFIRMATION_DO_INITIAL_CHECKS_FOR_FREE_SPACE)
{ // Leave it to InitialChecks to test whether the player has signed out or removed the storage device
}
else
{
if (CSavegameUsers::HasPlayerJustSignedOut())
{
ms_SlotForPlayerConfirmation = -1;
ms_TypeOfPlayerConfirmationCheck = SAVE_CONFIRMATION_PLAYER_HAS_SIGNED_OUT;
}
if (CSavegameDevices::HasSelectedDeviceJustBeenRemoved())
{
ms_SlotForPlayerConfirmation = -1;
ms_TypeOfPlayerConfirmationCheck = SAVE_CONFIRMATION_STORAGE_DEVICE_REMOVED;
}
}
switch (ms_TypeOfPlayerConfirmationCheck)
{
case SAVE_CONFIRMATION_NONE :
return NO_PLAYER_CONFIRMATION_CHECK_IN_PROGRESS;
case SAVE_CONFIRMATION_DISPLAY_MESSAGE :
{
u32 MessageToDisplay = SAVE_GAME_DIALOG_SAVE_WILL_OVERWRITE_SLOT;
switch (ms_SaveMessageType)
{
case SAVE_MESSAGE_SAVE :
if (CSavegameList::IsSaveGameSlotEmpty(ms_SlotForPlayerConfirmation))
{
MessageToDisplay = SAVE_GAME_DIALOG_SAVE_ARE_YOU_SURE;
}
else
{
MessageToDisplay = SAVE_GAME_DIALOG_SAVE_WILL_OVERWRITE_SLOT;
}
break;
case SAVE_MESSAGE_DELETE :
MessageToDisplay = SAVE_GAME_DIALOG_DELETE_ARE_YOU_SURE;
break;
#if __ALLOW_IMPORT_OF_SP_SAVEGAMES
case SAVE_MESSAGE_IMPORT :
if (CSavegameList::IsSaveGameSlotEmpty(ms_SlotForPlayerConfirmation))
{
MessageToDisplay = SAVE_GAME_DIALOG_IMPORT_ARE_YOU_SURE;
}
else
{
MessageToDisplay = SAVE_GAME_DIALOG_IMPORT_WILL_OVERWRITE_SLOT;
}
break;
#endif // __ALLOW_IMPORT_OF_SP_SAVEGAMES
}
s32 slotNumberToDisplay = ms_SlotForPlayerConfirmation + 1; // - FIRST_MANUAL_SLOT;
Assertf(slotNumberToDisplay > 0, "CSaveConfirmationMessage::Process - slot to display should be greater than 0");
if (CSavegameDialogScreens::HandleSaveGameDialogBox(MessageToDisplay, slotNumberToDisplay, &ReturnSelection))
{
if (ReturnSelection)
{
switch (ms_SaveMessageType)
{
case SAVE_MESSAGE_DELETE :
ms_TypeOfPlayerConfirmationCheck = SAVE_CONFIRMATION_NONE;
ReturnValue = PLAYER_CONFIRMATION_CHECK_FINISHED_BEGIN_DELETING_FROM_SAVE_MENU;
break;
case SAVE_MESSAGE_SAVE :
{
CPauseMenu::SetRenderMenus(false);
#if RSG_ORBIS
CSavegameFilenames::MakeValidSaveNameForLocalFile(CSavegameList::ConvertBackupSlotToSavegameSlot(ms_SlotForPlayerConfirmation));
#else
CSavegameFilenames::MakeValidSaveNameForLocalFile(ms_SlotForPlayerConfirmation);
#endif
CGenericGameStorage::SetSaveOperation(OPERATION_CHECKING_FOR_FREE_SPACE);
CSavegameInitialChecks::BeginInitialChecks(false);
ms_TypeOfPlayerConfirmationCheck = SAVE_CONFIRMATION_DO_INITIAL_CHECKS_FOR_FREE_SPACE;
}
break;
#if __ALLOW_IMPORT_OF_SP_SAVEGAMES
case SAVE_MESSAGE_IMPORT :
#if RSG_ORBIS
CSavegameFilenames::MakeValidSaveNameForLocalFile(CSavegameList::ConvertBackupSlotToSavegameSlot(ms_SlotForPlayerConfirmation));
#else
CSavegameFilenames::MakeValidSaveNameForLocalFile(ms_SlotForPlayerConfirmation);
#endif
// The real display name for the imported savegame gets set later when
// CSaveGameImport::BeginInitialChecks() calls SetDisplayNameForSavegame()
// The SAVE_MESSAGE_SAVE case above checks that there is enough free space for the new save
// I'm not sure if I know the size of the imported savegame at this stage
// So just return here to allow the import to proceed
ms_TypeOfPlayerConfirmationCheck = SAVE_CONFIRMATION_NONE;
ReturnValue = PLAYER_CONFIRMATION_CHECK_FINISHED_BEGIN_IMPORTING;
break;
#endif // __ALLOW_IMPORT_OF_SP_SAVEGAMES
}
}
else
{
ms_TypeOfPlayerConfirmationCheck = SAVE_CONFIRMATION_NONE;
ReturnValue = NO_PLAYER_CONFIRMATION_CHECK_IN_PROGRESS;
if (SAVE_MESSAGE_DELETE == ms_SaveMessageType)
{
// Default to save in the quick save menu, so if the player doesn't delete the save and tries to save over it immediately after, it'll work
CPauseMenu::SetPlayerWantsToSaveASavegame();
}
}
}
}
break;
case SAVE_CONFIRMATION_DO_INITIAL_CHECKS_FOR_FREE_SPACE :
{
MemoryCardError SelectionState = CSavegameInitialChecks::InitialChecks();
if (SelectionState == MEM_CARD_ERROR)
{
CPauseMenu::SetRenderMenus(true);
if (SAVE_GAME_DIALOG_PLAYER_HAS_SIGNED_OUT == CSavegameDialogScreens::GetMostRecentErrorCode())
{
bPlayerHasSignedOut = true;
}
else
{
ms_TypeOfPlayerConfirmationCheck = SAVE_CONFIRMATION_HANDLE_ERRORS;
}
}
else if (SelectionState == MEM_CARD_COMPLETE)
{ // There is enough free space
// *pSlotToUse = ms_SlotForPlayerConfirmation;
ms_TypeOfPlayerConfirmationCheck = SAVE_CONFIRMATION_NONE;
CGenericGameStorage::SetSaveOperation(OPERATION_NONE);
ReturnValue = PLAYER_CONFIRMATION_CHECK_FINISHED_BEGIN_SAVING;
}
}
break;
case SAVE_CONFIRMATION_HANDLE_ERRORS :
if (CSavegameDialogScreens::HandleSaveGameErrorCode())
{
ms_TypeOfPlayerConfirmationCheck = SAVE_CONFIRMATION_NONE;
CGenericGameStorage::SetSaveOperation(OPERATION_NONE);
ReturnValue = PLAYER_CONFIRMATION_CHECK_INTERRUPTED_NEED_TO_RESCAN;
}
break;
case SAVE_CONFIRMATION_PLAYER_HAS_SIGNED_OUT :
bPlayerHasSignedOut = true;
break;
case SAVE_CONFIRMATION_STORAGE_DEVICE_REMOVED :
if (CSavegameDialogScreens::HandleSaveGameDialogBox(SAVE_GAME_DIALOG_SELECTED_DEVICE_HAS_BEEN_REMOVED, 0, &ReturnSelection))
{
ms_TypeOfPlayerConfirmationCheck = SAVE_CONFIRMATION_NONE;
CGenericGameStorage::SetSaveOperation(OPERATION_NONE);
ReturnValue = PLAYER_CONFIRMATION_CHECK_INTERRUPTED_NEED_TO_RESCAN;
}
break;
default :
Assertf(0, "CSaveConfirmationMessage::Process - unknown ms_TypeOfPlayerConfirmationCheck");
break;
}
if (bPlayerHasSignedOut)
{
ms_TypeOfPlayerConfirmationCheck = SAVE_CONFIRMATION_NONE;
CGenericGameStorage::SetSaveOperation(OPERATION_NONE);
ReturnValue = PLAYER_CONFIRMATION_CHECK_INTERRUPTED_PLAYER_HAS_SIGNED_OUT;
}
return ReturnValue;
}