365 lines
12 KiB
C++
365 lines
12 KiB
C++
|
|
|
|
#ifndef SAVEGAME_MESSAGES_H
|
|
#define SAVEGAME_MESSAGES_H
|
|
|
|
#include "text/TextFile.h"
|
|
|
|
enum SaveGameDialogCode
|
|
{
|
|
SAVE_GAME_DIALOG_SIGN_IN,
|
|
SAVE_GAME_DIALOG_DONT_SIGN_IN_TRY_AGAIN,
|
|
SAVE_GAME_DIALOG_DEVICE_SELECTION,
|
|
SAVE_GAME_DIALOG_DONT_SELECT_DEVICE_TRY_AGAIN,
|
|
SAVE_GAME_DIALOG_FREE_SPACE_CHECK,
|
|
SAVE_GAME_DIALOG_NO_FREE_SPACE_AT_START_OF_GAME,
|
|
// ******** User Cancelled ********
|
|
// SAVE_GAME_DIALOG_SCAN_FAILED,
|
|
// SAVE_GAME_DIALOG_LOAD_FAILED,
|
|
// SAVE_GAME_DIALOG_AUTOSAVE_FAILED,
|
|
// SAVE_GAME_DIALOG_SAVE_FAILED,
|
|
// ******* Errors *******
|
|
SAVE_GAME_DIALOG_NONE,
|
|
SAVE_GAME_DIALOG_DEVICE_SELECTION_FAILED,
|
|
SAVE_GAME_DIALOG_DEVICE_SELECTION_FAILED2,
|
|
SAVE_GAME_DIALOG_DEVICE_SELECTION_FAILED3,
|
|
SAVE_GAME_DIALOG_BEGIN_FREE_SPACE_CHECK_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_FREE_SPACE_CHECK_FAILED1,
|
|
SAVE_GAME_DIALOG_CHECK_FREE_SPACE_CHECK_FAILED2,
|
|
SAVE_GAME_DIALOG_DELETE_FROM_LIST_FAILED,
|
|
// SAVE_GAME_DIALOG_PLAYER_DOESNT_WANT_TO_FREE_SPACE,
|
|
SAVE_GAME_DIALOG_BEGIN_ENUMERATION_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_ENUMERATION_FAILED1,
|
|
SAVE_GAME_DIALOG_CHECK_ENUMERATION_FAILED2,
|
|
SAVE_GAME_DIALOG_BEGIN_SAVE_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_SAVE_FAILED1,
|
|
SAVE_GAME_DIALOG_CHECK_SAVE_FAILED2,
|
|
SAVE_GAME_DIALOG_BEGIN_GET_FILE_MODIFIED_TIME_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_GET_FILE_MODIFIED_TIME_FAILED1,
|
|
SAVE_GAME_DIALOG_CHECK_GET_FILE_MODIFIED_TIME_FAILED2,
|
|
SAVE_GAME_DIALOG_BEGIN_ICON_SAVE_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_ICON_SAVE_FAILED1,
|
|
SAVE_GAME_DIALOG_CHECK_ICON_SAVE_FAILED2,
|
|
SAVE_GAME_DIALOG_BEGIN_GET_CREATOR_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_GET_CREATOR_FAILED1,
|
|
SAVE_GAME_DIALOG_CHECK_GET_CREATOR_FAILED2,
|
|
SAVE_GAME_DIALOG_PLAYER_IS_NOT_CREATOR,
|
|
SAVE_GAME_DIALOG_BEGIN_LOAD_FAILED,
|
|
SAVE_GAME_DIALOG_LOAD_BUFFER_SIZE_MISMATCH,
|
|
SAVE_GAME_DIALOG_CHECK_LOAD_FAILED1,
|
|
SAVE_GAME_DIALOG_CHECK_LOAD_FAILED2,
|
|
// SAVE_GAME_DIALOG_BEGIN_GET_FILE_TIME_FAILED,
|
|
// SAVE_GAME_DIALOG_CHECK_GET_FILE_TIME_FAILED1,
|
|
// SAVE_GAME_DIALOG_CHECK_GET_FILE_TIME_FAILED2,
|
|
SAVE_GAME_DIALOG_BEGIN_GET_FILE_SIZE_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_GET_FILE_SIZE_FAILED1,
|
|
SAVE_GAME_DIALOG_CHECK_GET_FILE_SIZE_FAILED2,
|
|
SAVE_GAME_DIALOG_ALLOCATE_MEMORY_FOR_LOAD_FAILED,
|
|
SAVE_GAME_DIALOG_ALLOCATE_MEMORY_FOR_SAVE_FAILED,
|
|
SAVE_GAME_DIALOG_SAVE_BLOCK_DATA_FAILED,
|
|
SAVE_GAME_DIALOG_PLAYER_HAS_SIGNED_OUT,
|
|
SAVE_GAME_DIALOG_SELECTED_DEVICE_HAS_BEEN_REMOVED,
|
|
SAVE_GAME_DIALOG_OVERWRITE_EXISTING_AUTOSAVE,
|
|
SAVE_GAME_DIALOG_AUTOSAVE_FAILED_TRY_AGAIN,
|
|
SAVE_GAME_DIALOG_AUTOSAVE_OFF_ARE_YOU_SURE,
|
|
SAVE_GAME_DIALOG_AUTOSAVE_SWITCHED_OFF,
|
|
SAVE_GAME_DIALOG_CANT_LOAD_A_DAMAGED_SAVE,
|
|
SAVE_GAME_DIALOG_LOAD_WILL_OVERWRITE,
|
|
// SAVE_GAME_DIALOG_LOAD_ARE_YOU_SURE,
|
|
SAVE_GAME_DIALOG_DELETE_ARE_YOU_SURE,
|
|
#if __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
|
|
SAVE_GAME_DIALOG_UPLOAD_ARE_YOU_SURE,
|
|
#endif // __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
|
|
|
|
#if __ALLOW_EXPORT_OF_SP_SAVEGAMES
|
|
SAVE_GAME_DIALOG_CANT_EXPORT_A_DAMAGED_SAVE,
|
|
SAVE_GAME_DIALOG_CONFIRM_EXPORT_OF_SAVEGAME,
|
|
#endif // __ALLOW_EXPORT_OF_SP_SAVEGAMES
|
|
|
|
#if __ALLOW_IMPORT_OF_SP_SAVEGAMES
|
|
SAVE_GAME_DIALOG_IMPORT_WILL_OVERWRITE_SLOT,
|
|
SAVE_GAME_DIALOG_IMPORT_ARE_YOU_SURE,
|
|
|
|
SAVE_GAME_DIALOG_IMPORT_OF_SAVEGAME_SUCCEEDED,
|
|
SAVE_GAME_DIALOG_IMPORT_OF_SAVEGAME_FAILED,
|
|
SAVE_GAME_DIALOG_LOADING_OF_IMPORTED_SAVEGAME_FAILED,
|
|
#endif // __ALLOW_IMPORT_OF_SP_SAVEGAMES
|
|
|
|
SAVE_GAME_DIALOG_SAVE_WILL_OVERWRITE_SLOT,
|
|
SAVE_GAME_DIALOG_SAVE_ARE_YOU_SURE,
|
|
SAVE_GAME_DIALOG_TOO_MANY_SAVE_FILES_IN_FOLDER,
|
|
SAVE_GAME_DIALOG_UNEXPECTED_FILENAME,
|
|
SAVE_GAME_DIALOG_TWO_SAVE_FILES_WITH_SAME_NAME,
|
|
SAVE_GAME_DIALOG_WRONG_VERSION,
|
|
SAVE_GAME_DIALOG_EXTRA_CONTENT_ERROR,
|
|
// ******* AutoLoad *******
|
|
SAVE_GAME_DIALOG_AUTOLOAD_SIGN_IN,
|
|
// SAVE_GAME_DIALOG_AUTOLOAD_DONT_SIGN_IN_SURE,
|
|
SAVE_GAME_DIALOG_AUTOLOAD_DONT_SIGN_IN_OK,
|
|
SAVE_GAME_DIALOG_AUTOLOAD_NOT_SIGNED_IN_TRY_AGAIN,
|
|
SAVE_GAME_DIALOG_MOST_RECENT_SAVE_IS_DAMAGED,
|
|
SAVE_GAME_DIALOG_AUTOLOAD_NO_PAD_CONNECTED,
|
|
SAVE_GAME_DIALOG_AUTOLOAD_MULTIPLE_PROFILES,
|
|
// #if __PPU
|
|
// SAVE_GAME_DIALOG_FLASHING_HDD_LIGHT_WARNING
|
|
// #endif
|
|
SAVE_GAME_DIALOG_BEGIN_LOCAL_DELETE_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_LOCAL_DELETE_FAILED1,
|
|
SAVE_GAME_DIALOG_CHECK_LOCAL_DELETE_FAILED2,
|
|
SAVE_GAME_DIALOG_BEGIN_CLOUD_DELETE_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_CLOUD_DELETE_FAILED,
|
|
SAVE_GAME_DIALOG_BEGIN_CLOUD_LOAD_PHOTO_LIST_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_CLOUD_LOAD_PHOTO_LIST_FAILED,
|
|
SAVE_GAME_DIALOG_BEGIN_CLOUD_LOAD_JPEG_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_CLOUD_LOAD_JPEG_FAILED,
|
|
SAVE_GAME_DIALOG_BEGIN_LOCAL_LOAD_JPEG_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_LOCAL_LOAD_JPEG_FAILED,
|
|
SAVE_GAME_DIALOG_BEGIN_CLOUD_LOAD_JSON_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_CLOUD_LOAD_JSON_FAILED,
|
|
SAVE_GAME_DIALOG_BEGIN_CLOUD_SAVE_JPEG_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_CLOUD_SAVE_JPEG_FAILED,
|
|
SAVE_GAME_DIALOG_BEGIN_CLOUD_SAVE_JSON_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_CLOUD_SAVE_JSON_FAILED,
|
|
SAVE_GAME_DIALOG_BEGIN_UGC_PHONE_PHOTO_SAVE_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_UGC_PHONE_PHOTO_SAVE_FAILED,
|
|
|
|
SAVE_GAME_DIALOG_LIMELIGHT_UGC_CREATE_ALREADY_PENDING,
|
|
SAVE_GAME_DIALOG_LIMELIGHT_UGC_CREATION_FAILED_TO_START,
|
|
SAVE_GAME_DIALOG_LIMELIGHT_UGC_CREATION_FAILED,
|
|
|
|
SAVE_GAME_DIALOG_LIMELIGHT_GET_UGC_CREATE_CONTENT_ID_FAILED,
|
|
SAVE_GAME_DIALOG_LIMELIGHT_GET_UGC_CREATE_RESULT_FAILED,
|
|
SAVE_GAME_DIALOG_LIMELIGHT_UGC_METADATA_PARSE_ERROR,
|
|
SAVE_GAME_DIALOG_LIMELIGHT_CREATE_TASK_FAILED,
|
|
SAVE_GAME_DIALOG_LIMELIGHT_CONFIGURE_FAILED,
|
|
SAVE_GAME_DIALOG_LIMELIGHT_ADD_PARALLEL_TASK_FAILED,
|
|
|
|
SAVE_GAME_DIALOG_LIMELIGHT_UPLOAD_FAILED,
|
|
SAVE_GAME_DIALOG_LIMELIGHT_UGC_PUBLISH_FAILED_TO_START,
|
|
SAVE_GAME_DIALOG_LIMELIGHT_UGC_PUBLISH_FAILED,
|
|
|
|
#if __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
|
|
SAVE_GAME_DIALOG_LOADING_LOCAL_SAVEGAME_BEFORE_UPLOADING_TO_CLOUD,
|
|
SAVE_GAME_DIALOG_UPLOADING_SAVEGAME_TO_CLOUD,
|
|
SAVE_GAME_DIALOG_UPLOAD_OF_SAVEGAME_SUCCEEDED,
|
|
SAVE_GAME_DIALOG_BEGIN_CLOUD_SAVE_SP_SAVEGAME_FAILED,
|
|
SAVE_GAME_DIALOG_CHECK_CLOUD_SAVE_SP_SAVEGAME_FAILED,
|
|
#endif // __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
|
|
|
|
#if RSG_PC
|
|
SAVE_GAME_DIALOG_MOST_RECENT_PC_SAVE_IS_DAMAGED,
|
|
SAVE_GAME_DIALOG_CANT_LOAD_A_DAMAGED_PC_SAVE,
|
|
#endif // RSG_PC
|
|
|
|
SAVE_GAME_DIALOG_MISSION_REPEAT_MAKES_A_SAVE,
|
|
SAVE_GAME_DIALOG_PC_BENCHMARK_TEST_MAKES_A_SAVE,
|
|
SAVE_GAME_DIALOG_DELETION_OF_SAVEGAME_SUCCEEDED,
|
|
SAVE_GAME_DIALOG_PLAYER_HAS_SKIPPED_AUTOLOAD,
|
|
SAVE_GAME_DIALOG_OLDEST_UPLOADED_PHOTO_WILL_BE_DELETED
|
|
};
|
|
|
|
|
|
enum ePlayerConfirmationReturn
|
|
{
|
|
NO_PLAYER_CONFIRMATION_CHECK_IN_PROGRESS,
|
|
PLAYER_CONFIRMATION_CHECK_IN_PROGRESS,
|
|
PLAYER_CONFIRMATION_CHECK_FINISHED_BEGIN_LOADING,
|
|
PLAYER_CONFIRMATION_CHECK_FINISHED_BEGIN_DELETING_FROM_LOAD_MENU,
|
|
PLAYER_CONFIRMATION_CHECK_FINISHED_BEGIN_DELETING_FROM_SAVE_MENU,
|
|
#if __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
|
|
PLAYER_CONFIRMATION_CHECK_FINISHED_BEGIN_UPLOADING,
|
|
#endif // __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
|
|
|
|
#if __ALLOW_EXPORT_OF_SP_SAVEGAMES
|
|
PLAYER_CONFIRMATION_CHECK_FINISHED_BEGIN_EXPORTING,
|
|
#endif // __ALLOW_EXPORT_OF_SP_SAVEGAMES
|
|
|
|
#if __ALLOW_IMPORT_OF_SP_SAVEGAMES
|
|
PLAYER_CONFIRMATION_CHECK_FINISHED_BEGIN_IMPORTING,
|
|
#endif // __ALLOW_IMPORT_OF_SP_SAVEGAMES
|
|
|
|
PLAYER_CONFIRMATION_CHECK_FINISHED_BEGIN_SAVING,
|
|
PLAYER_CONFIRMATION_CHECK_INTERRUPTED_NEED_TO_RESCAN,
|
|
PLAYER_CONFIRMATION_CHECK_INTERRUPTED_PLAYER_HAS_SIGNED_OUT
|
|
};
|
|
|
|
#define MAX_MENU_ITEM_CHAR_LENGTH (60) // should be plenty to hold longer menu items
|
|
|
|
class CSavegameDialogScreens
|
|
{
|
|
private:
|
|
// Private data
|
|
static SaveGameDialogCode ms_MostRecentErrorCode;
|
|
|
|
static char DialogBoxHeading[TEXT_KEY_SIZE];
|
|
|
|
static u32 ms_NumberOfFramesToRenderBlackScreen;
|
|
|
|
static u32 ms_NumberOfFramesThatTheMessageHasBeenDisplayingFor;
|
|
|
|
static bool ms_bAllowSetMessageAsProcessingToBeCalled;
|
|
|
|
static bool ms_bMessageIsProcessingThisFrame;
|
|
static bool ms_bMessageWasProcessedLastFrame;
|
|
|
|
static bool sm_bStartedUserPause;
|
|
static bool sm_bScriptWasPaused;
|
|
|
|
static bool sm_bLoadingScreensHaveBeenSuspended;
|
|
|
|
// Private functions
|
|
static void DisplayRockstarDevWarning(const char *pStringToDisplay, const char *pSubString1 = NULL, const char *pSubString2 = NULL, bool bInsertNumber = false, int numberToInsert = -1);
|
|
|
|
public:
|
|
// Public functions
|
|
static void Init(unsigned initMode);
|
|
|
|
static void BeforeUpdatingTheSavegameQueue();
|
|
static void AfterUpdatingTheSavegameQueue();
|
|
|
|
static void SetMessageAsProcessing(bool bProcessing);
|
|
static bool IsMessageProcessing() { return ms_bMessageIsProcessingThisFrame; }
|
|
|
|
static void SetDialogBoxHeading(const char *pNewHeading);
|
|
|
|
static void SetSaveGameError(SaveGameDialogCode NewErrorCode);
|
|
static void ClearSaveGameError() { ms_MostRecentErrorCode = SAVE_GAME_DIALOG_NONE; }
|
|
static SaveGameDialogCode GetMostRecentErrorCode() { return ms_MostRecentErrorCode; }
|
|
|
|
static bool HandleSaveGameErrorCode();
|
|
|
|
static bool HandleSaveGameDialogBox(u32 MessageToDisplay, const int NumberToInsertInMessage, bool *pReturnSelection);
|
|
|
|
static void RenderBlackScreen();
|
|
|
|
static bool ShouldRenderBlackScreen();
|
|
|
|
};
|
|
|
|
|
|
class CLoadConfirmationMessage
|
|
{
|
|
public:
|
|
enum eLoadMessageType
|
|
{
|
|
LOAD_MESSAGE_LOAD,
|
|
LOAD_MESSAGE_DELETE
|
|
#if __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
|
|
,LOAD_MESSAGE_UPLOAD
|
|
#endif // __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
|
|
|
|
#if __ALLOW_EXPORT_OF_SP_SAVEGAMES
|
|
, LOAD_MESSAGE_EXPORT
|
|
#endif // __ALLOW_EXPORT_OF_SP_SAVEGAMES
|
|
};
|
|
|
|
private:
|
|
// Private data
|
|
enum eLoadConfirmationType
|
|
{
|
|
LOAD_CONFIRMATION_NONE,
|
|
LOAD_CONFIRMATION_DISPLAY_MESSAGE,
|
|
LOAD_CONFIRMATION_PLAYER_HAS_SIGNED_OUT,
|
|
LOAD_CONFIRMATION_STORAGE_DEVICE_REMOVED
|
|
};
|
|
|
|
static s32 ms_SlotForPlayerConfirmation;
|
|
static eLoadConfirmationType ms_TypeOfPlayerConfirmationCheck;
|
|
static eLoadMessageType ms_LoadMessageType;
|
|
static bool ms_bSlotIsDamaged;
|
|
|
|
public:
|
|
static void Clear();
|
|
static void Begin(s32 SlotNumber, eLoadMessageType loadMessageType);
|
|
static ePlayerConfirmationReturn Process();
|
|
|
|
static bool IsThereAMessageToProcess() { return (LOAD_CONFIRMATION_NONE != ms_TypeOfPlayerConfirmationCheck); }
|
|
|
|
static s32 GetSlotIndex() { return ms_SlotForPlayerConfirmation; }
|
|
};
|
|
|
|
class CSaveConfirmationMessage
|
|
{
|
|
public:
|
|
enum eSaveMessageType
|
|
{
|
|
SAVE_MESSAGE_SAVE,
|
|
SAVE_MESSAGE_DELETE
|
|
|
|
#if __ALLOW_IMPORT_OF_SP_SAVEGAMES
|
|
, SAVE_MESSAGE_IMPORT
|
|
#endif // __ALLOW_IMPORT_OF_SP_SAVEGAMES
|
|
};
|
|
|
|
private:
|
|
// Private data
|
|
enum eSaveConfirmationType
|
|
{
|
|
SAVE_CONFIRMATION_NONE,
|
|
SAVE_CONFIRMATION_DISPLAY_MESSAGE,
|
|
SAVE_CONFIRMATION_DO_INITIAL_CHECKS_FOR_FREE_SPACE,
|
|
SAVE_CONFIRMATION_HANDLE_ERRORS,
|
|
SAVE_CONFIRMATION_PLAYER_HAS_SIGNED_OUT,
|
|
SAVE_CONFIRMATION_STORAGE_DEVICE_REMOVED
|
|
};
|
|
|
|
static s32 ms_SlotForPlayerConfirmation;
|
|
static eSaveConfirmationType ms_TypeOfPlayerConfirmationCheck;
|
|
static eSaveMessageType ms_SaveMessageType;
|
|
|
|
public:
|
|
static void Clear();
|
|
static void Begin(s32 SlotNumber, eSaveMessageType saveMessageType);
|
|
static ePlayerConfirmationReturn Process();
|
|
|
|
static bool IsThereAMessageToProcess() { return (SAVE_CONFIRMATION_NONE != ms_TypeOfPlayerConfirmationCheck); }
|
|
|
|
static s32 GetSlotIndex() { return ms_SlotForPlayerConfirmation; }
|
|
};
|
|
|
|
class CSavingMessage
|
|
{
|
|
public :
|
|
enum eTypeOfMessage
|
|
{
|
|
STORAGE_DEVICE_MESSAGE_INVALID,
|
|
STORAGE_DEVICE_MESSAGE_SAVING,
|
|
STORAGE_DEVICE_MESSAGE_LOADING,
|
|
STORAGE_DEVICE_MESSAGE_LOAD_SUCCESSFUL,
|
|
STORAGE_DEVICE_MESSAGE_CLOUD_SAVING,
|
|
STORAGE_DEVICE_MESSAGE_CLOUD_LOADING,
|
|
STORAGE_DEVICE_MESSAGE_LOCAL_DELETING,
|
|
STORAGE_DEVICE_MESSAGE_CLOUD_DELETING
|
|
#if GTA_REPLAY
|
|
, STORAGE_DEVICE_MESSAGE_SAVING_REPLAY
|
|
, STORAGE_DEVICE_MESSAGE_SAVING_REPLAY_PROJECT
|
|
, STORAGE_DEVICE_MESSAGE_SAVING_REPLAY_PROJECT_NO_TEXT
|
|
, STORAGE_DEVICE_MESSAGE_SAVING_REPLAY_THUMBNAIL
|
|
#endif // GTA_REPLAY
|
|
};
|
|
|
|
private:
|
|
// Private data
|
|
static sysTimer m_TimeDisplayedFor;
|
|
static bool m_bDisplaySavingMessage;
|
|
static eTypeOfMessage m_eTypeOfMessage;
|
|
|
|
public:
|
|
// Public functions
|
|
static void Clear();
|
|
static void BeginDisplaying(eTypeOfMessage MessageType);
|
|
static void DisplaySavingMessage();
|
|
|
|
static bool IsDisplayingSavingMessage() { return m_bDisplaySavingMessage; }
|
|
static bool ShouldDisplaySavingSpinner();
|
|
|
|
static bool HasLoadingMessageDisplayedForLongEnough();
|
|
|
|
static eTypeOfMessage GetMessageType() { return m_eTypeOfMessage; }
|
|
};
|
|
|
|
|
|
#endif // SAVEGAME_MESSAGES_H
|
|
|
|
|