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

105 lines
2.8 KiB
C++

#ifndef SAVEGAME_SAVE_BLOCK_H
#define SAVEGAME_SAVE_BLOCK_H
//Rage headers
#include "system/param.h"
#include "rline/rl.h"
#include "rline/ros/rlros.h"
#include "rline/ros/rlroscommon.h"
// Game headers
#include "SaveLoad/savegame_data.h"
#include "SaveLoad/savegame_defines.h"
#include "network/Network.h"
enum eSaveBlockState
{
SAVE_BLOCK_DO_NOTHING = 0,
SAVE_BLOCK_INITIAL_CHECKS,
SAVE_BLOCK_BEGIN_SAVE,
SAVE_BLOCK_DO_SAVE,
SAVE_BLOCK_HANDLE_ERRORS
};
/*
enum eLocalBlockSaveSubstate
{
LOCAL_BLOCK_SAVE_SUBSTATE_BEGIN_SAVE,
LOCAL_BLOCK_SAVE_SUBSTATE_CHECK_SAVE,
#if __PPU
LOCAL_BLOCK_SAVE_SUBSTATE_GET_MODIFIED_TIME,
#endif // __PPU
// LOCAL_BLOCK_SAVE_SUBSTATE_BEGIN_ICON_SAVE,
// LOCAL_BLOCK_SAVE_SUBSTATE_CHECK_ICON_SAVE
};
*/
enum eCloudBlockSaveSubstate
{
CLOUD_BLOCK_SAVE_SUBSTATE_INIT,
CLOUD_BLOCK_SAVE_SUBSTATE_UPDATE
#if __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
,CLOUD_BLOCK_SAVE_SUBSTATE_INIT_JSON_SAVE,
CLOUD_BLOCK_SAVE_SUBSTATE_UPDATE_JSON_SAVE
#endif // __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
};
// Forward declaration
class CloudFileSaveListener;
class CSavegameSaveBlock
{
private:
// Private data
static CloudFileSaveListener *ms_pCloudFileSaveListener;
static eSaveBlockState ms_SaveBlockStatus;
// static eLocalBlockSaveSubstate ms_LocalBlockSaveSubstate;
static eCloudBlockSaveSubstate ms_CloudBlockSaveSubstate;
static u32 ms_SizeOfBufferToBeSaved;
static const u8 *ms_pBufferToBeSaved;
// static bool ms_IsCloudOperation;
#if __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
static bool ms_bIsAPhoto;
static const char *ms_pJsonData;
#endif // __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
// Private functions
static MemoryCardError DoSaveBlockCloud();
// static MemoryCardError DoSaveBlock();
static MemoryCardError BeginSaveToCloud(const char *pFilename, const u8 *pBufferToSave, u32 SizeOfBufferToSave
#if __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
, bool bIsAPhoto, const char *pJsonData
#endif // __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
);
static void EndSaveBlockCloud();
// static void EndSaveBlock();
public:
// Public functions
static void Init(unsigned initMode);
static void Shutdown(unsigned shutdownMode);
// static MemoryCardError BeginSaveBlock(int SlotNumber, const u8 *pBufferToSave, u32 SizeOfBufferToSave, const bool isCloudOperation, const char *pJsonData, bool bIsPhotoFile);
static MemoryCardError BeginSaveOfMissionCreatorPhoto(const char *pFilename, const u8 *pBufferToSave, u32 SizeOfBufferToSave);
#if __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
static MemoryCardError BeginUploadOfSavegameToCloud(const char *pFilename, const u8 *pBufferToSave, u32 SizeOfBufferToSave, const char *pJsonData);
#endif // __ALLOW_CLOUD_UPLOAD_OF_LOCAL_SAVEGAME
static MemoryCardError SaveBlock(bool bDisplayErrors = true);
};
#endif // SAVEGAME_SAVE_BLOCK_H