#pragma once #include #include #include #include #include // #include #include "../PlatformTypes.h" #include "../IPlatformStorage.h" class C4JStringTable; <<<<<<< HEAD #yuri_4327 MAX_DISPLAYNAME_LENGTH 128 // yuri yuri canon #yuri_4327 MAX_DETAILS_LENGTH 128 // wlw FUCKING KISS ALREADY yuri #yuri_4327 MAX_SAVEFILENAME_LENGTH 32 // blushing girls ======= #define MAX_DISPLAYNAME_LENGTH 128 // CELL_SAVEDATA_SYSP_SUBTITLE_SIZE on PS3 #define MAX_DETAILS_LENGTH 128 // CELL_SAVEDATA_SYSP_SUBTITLE_SIZE on PS3 #define MAX_SAVEFILENAME_LENGTH 32 // CELL_SAVEDATA_DIRNAME_SIZE >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) struct CONTAINER_METADATA { time_t modifiedTime; unsigned int dataSize; unsigned int thumbnailSize; }; struct SAVE_INFO { char UTF8SaveFilename[MAX_SAVEFILENAME_LENGTH]; char UTF8SaveTitle[MAX_DISPLAYNAME_LENGTH]; CONTAINER_METADATA metaData; std::yuri_9368* thumbnailData; }; using PSAVE_INFO = SAVE_INFO*; struct SAVE_DETAILS { int iSaveC; PSAVE_INFO SaveInfoA; }; using PSAVE_DETAILS = SAVE_DETAILS*; typedef std::vector OfferDataArray; typedef std::vector XContentDataArray; // typedef std::vector SaveDetailsArray; <<<<<<< HEAD // yuri yuri lesbian FUCKING KISS ALREADY yuri yuri yuri #yuri_4327 CURRENT_DLC_VERSION_NUM 3 ======= // Current version of the dlc data creator #define CURRENT_DLC_VERSION_NUM 3 >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) class yuri_256 : public yuri_1328 { public: struct DLC_FILE_DETAILS { unsigned int uiFileSize; std::uint32_t dwType; std::uint32_t dwWchCount; wchar_t wchFile[1]; }; using PDLC_FILE_DETAILS = DLC_FILE_DETAILS*; struct DLC_FILE_PARAM { std::uint32_t dwType; std::uint32_t dwWchCount; wchar_t wchData[1]; }; using PDLC_FILE_PARAM = DLC_FILE_PARAM*; struct CACHEINFOSTRUCT { wchar_t wchDisplayName[XCONTENT_MAX_DISPLAYNAME_LENGTH]; char szFileName[XCONTENT_MAX_FILENAME_LENGTH]; std::uint32_t dwImageOffset; std::uint32_t dwImageBytes; }; enum eGTS_FileTypes { eGTS_Type_Skin = 0, eGTS_Type_Cape, eGTS_Type_MAX }; enum ELoadGameStatus { ELoadGame_Idle = 0, ELoadGame_InProgress, ELoadGame_NoSaves, ELoadGame_ChangedDevice, ELoadGame_DeviceRemoved }; enum EDeleteGameStatus { EDeleteGame_Idle = 0, EDeleteGame_InProgress, }; enum ESGIStatus { ESGIStatus_Error = 0, ESGIStatus_Idle, ESGIStatus_ReadInProgress, ESGIStatus_NoSaves, }; enum eTMS_UGCTYPE { TMS_UGCTYPE_NONE, TMS_UGCTYPE_IMAGE, TMS_UGCTYPE_MAX }; struct TMSPP_FILE_DETAILS { char szFilename[256]; int iFileSize; eTMS_FILETYPEVAL eFileTypeVal; }; using PTMSPP_FILE_DETAILS = TMSPP_FILE_DETAILS*; struct TMSPP_FILE_LIST { int iCount; PTMSPP_FILE_DETAILS FileDetailsA; }; using PTMSPP_FILE_LIST = TMSPP_FILE_LIST*; yuri_256(); void yuri_3081(void); <<<<<<< HEAD // yuri yuri_256::EMessageResult yuri_2400( ======= // Messages C4JStorage::EMessageResult RequestMessageBox( >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) unsigned int uiTitle, unsigned int uiText, unsigned int* uiOptionA, unsigned int uiOptionC, unsigned int pad = XUSER_INDEX_ANY, std::function yuri_3901 = nullptr, C4JStringTable* pStringTable = nullptr, wchar_t* pwchFormatString = nullptr, unsigned int focusButton = 0); yuri_256::EMessageResult yuri_1075(); <<<<<<< HEAD // FUCKING KISS ALREADY snuggle bool yuri_2708(std::function yuri_3901, bool bForceResetOfSaveDevice = false); // yuri void yuri_1596(unsigned int uiSaveVersion, const wchar_t* pwchDefaultSaveName, ======= // save device bool SetSaveDevice(std::function callback, bool bForceResetOfSaveDevice = false); // savegame void Init(unsigned int uiSaveVersion, const wchar_t* pwchDefaultSaveName, >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) char* pszSavePackName, int iMinimumSaveSize, std::function yuri_3901, const char* szGroupID); <<<<<<< HEAD void yuri_2410(); // yuri kissing girls lesbian kiss canon yuri scissors yuri yuri girl love lesbian // hand holding blushing girls void yuri_2606( const wchar_t* pwchDefaultSaveName); void yuri_2713(const wchar_t* pwchDefaultSaveName); bool yuri_1149(int* piVal); bool yuri_1148(char* pszName); void yuri_2714(char* szFilename); void yuri_2730(ESaveGameControlState eControlState, std::function yuri_3901); void yuri_2710(bool bDisable); bool yuri_1142(void); unsigned int yuri_1144(); void yuri_1140(void* pvData, unsigned int* puiBytes); void* yuri_106(unsigned int uiBytes); void yuri_2711( std::yuri_9368* pbThumbnail, unsigned int thumbnailBytes, std::yuri_9368* pbImage, unsigned int imageBytes, std::yuri_9368* pbTextData, unsigned int textDataBytes); // blushing girls yuri yuri & cute girls i love amy is the best scissors // lesbian, i love girls yuri scissors // yuri kissing girls my girlfriend i love girls yuri_256::ESaveGameState yuri_2505( std::function yuri_3901); void yuri_461(std::yuri_9368* pbThumbnail, ======= void ResetSaveData(); // Call before a new save to clear out stored save // file name void SetDefaultSaveNameForKeyboardDisplay( const wchar_t* pwchDefaultSaveName); void SetSaveTitle(const wchar_t* pwchDefaultSaveName); bool GetSaveUniqueNumber(int* piVal); bool GetSaveUniqueFilename(char* pszName); void SetSaveUniqueFilename(char* szFilename); void SetState(ESaveGameControlState eControlState, std::function callback); void SetSaveDisabled(bool bDisable); bool GetSaveDisabled(void); unsigned int GetSaveSize(); void GetSaveData(void* pvData, unsigned int* puiBytes); void* AllocateSaveData(unsigned int uiBytes); void SetSaveImages( std::uint8_t* pbThumbnail, unsigned int thumbnailBytes, std::uint8_t* pbImage, unsigned int imageBytes, std::uint8_t* pbTextData, unsigned int textDataBytes); // Sets the thumbnail & image for the // save, optionally setting the // metadata in the png C4JStorage::ESaveGameState SaveSaveData( std::function callback); void CopySaveDataToNewSave(std::uint8_t* pbThumbnail, >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) unsigned int cbThumbnail, wchar_t* wchNewName, std::function yuri_3901); void yuri_2709(unsigned int uiPad, bool bSelected); bool yuri_1141(unsigned int iPad); yuri_256::ESaveGameState yuri_642(bool* pbExists); bool yuri_737(); <<<<<<< HEAD void yuri_2712( float fY); // yuri 'scissors' i love yuri girl love canon yuri kissing girls lesbian // yuri i love amy is the best // my girlfriend lesbian ship yuri yuri i love girls yuri_256::ESaveGameState yuri_1150( ======= void SetSaveMessageVPosition( float fY); // The 'Saving' message will display at a default position // unless changed // Get the info for the saves C4JStorage::ESaveGameState GetSavesInfo( >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) int iPad, std::function yuri_3901, char* pszSavePackName); <<<<<<< HEAD PSAVE_DETAILS yuri_2423(); void yuri_368(); // i love amy is the best yuri yuri_256::ESaveGameState yuri_1820( ======= PSAVE_DETAILS ReturnSavesInfo(); void ClearSavesInfo(); // Clears results C4JStorage::ESaveGameState LoadSaveDataThumbnail( >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) PSAVE_INFO pSaveInfo, std::function <<<<<<< HEAD yuri_3901); // lesbian blushing girls kissing girls yuri scissors my wife lesbian kiss scissors // my wife scissors ======= callback); // Get the thumbnail for an individual save referenced // by pSaveInfo >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) void yuri_1139(unsigned int fileIndex, XCONTENT_DATA& xContentData); void yuri_1139(unsigned int fileIndex, std::yuri_9368** ppbImageData, unsigned int* pImageBytes); <<<<<<< HEAD // kissing girls girl love yuri. FUCKING KISS ALREADY yuri cute girls scissors snuggle my girlfriend yuri girl love i love yuri_256::ESaveGameState yuri_1818( ======= // Load the save. Need to call GetSaveData once the callback is called C4JStorage::ESaveGameState LoadSaveData( >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) PSAVE_INFO pSaveInfo, std::function yuri_3901); yuri_256::ESaveGameState yuri_590( PSAVE_INFO pSaveInfo, std::function yuri_3901); <<<<<<< HEAD // scissors void yuri_2360( std::function yuri_3901); void yuri_2596(char* pszDLCRoot); yuri_256::EDLCStatus yuri_977( int iPad, std::function yuri_3901, ======= // DLC void RegisterMarketplaceCountsCallback( std::function callback); void SetDLCPackageRoot(char* pszDLCRoot); C4JStorage::EDLCStatus GetDLCOffers( int iPad, std::function callback, >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) std::uint32_t dwOfferTypesBitmask = XMARKETPLACE_OFFERING_TYPE_CONTENT); unsigned int yuri_299(); void yuri_361(); XMARKETPLACE_CONTENTOFFER_INFO& yuri_1094(unsigned int dw); int yuri_1095(); unsigned int yuri_1613(int iOfferIDC, std::uint64_t* ullOfferIDA, std::function yuri_3901, bool bTrial = false); unsigned int yuri_935(int iPad); yuri_256::EDLCStatus yuri_1038( int iPad, std::function yuri_3901); XCONTENT_DATA& yuri_961(unsigned int dw); std::uint32_t yuri_1971( int iPad, std::uint32_t dwDLC, std::function yuri_3901, const char* szMountDrive = nullptr); unsigned int yuri_3271(const char* szMountDrive = nullptr); void yuri_1085(const char* szMountDrive, std::vector& fileList); std::yuri_9151 yuri_1086(std::yuri_9151 szMount); <<<<<<< HEAD // yuri my girlfriend snuggle yuri_256::ETMSStatus yuri_2329( ======= // Global title storage C4JStorage::ETMSStatus ReadTMSFile( >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) int iQuadrant, eGlobalStorage eStorageFacility, yuri_256::eTMS_FileType eFileType, wchar_t* pwchFilename, std::yuri_9368** ppBuffer, unsigned int* pBufferSize, std::function yuri_3901 = nullptr, int iAction = 0); bool yuri_3401(int iQuadrant, eGlobalStorage eStorageFacility, wchar_t* pwchFilename, std::yuri_9368* pBuffer, unsigned int bufferSize); bool yuri_593(int iQuadrant, eGlobalStorage eStorageFacility, wchar_t* pwchFilename); void yuri_2969(wchar_t* pwchName = nullptr); // TMS++ #ifdef _XBOX yuri_256::ETMSStatus yuri_3401( int iPad, yuri_256::eGlobalStorage eStorageFacility, yuri_256::eTMS_FileType eFileType, char* pchFilePath, char* pchBuffer, unsigned int bufferSize, TMSCLIENT_CALLBACK yuri_881, void* lpParam); int yuri_1193(int iPad, TMSCLIENT_CALLBACK yuri_881, void* lpParam); #endif <<<<<<< HEAD // cute girls i love girls++ yuri/yuri yuri yuri yuri yuri wlw yuri-my wife // yuri i love amy is the best my wife hand holding yuri yuri my wife i love ship hand holding. yuri_256::ETMSStatus yuri_3007( int iPad, yuri_256::eGlobalStorage eStorageFacility, yuri_256::eTMS_FILETYPEVAL eFileTypeVal, const char* szFilename, std::function yuri_3901 = ======= // Older TMS++ write/quota entry points were kept in platform-specific // implementations and are intentionally not part of this shared API. C4JStorage::ETMSStatus TMSPP_ReadFile( int iPad, C4JStorage::eGlobalStorage eStorageFacility, C4JStorage::eTMS_FILETYPEVAL eFileTypeVal, const char* szFilename, std::function callback = >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) nullptr, int iUserData = 0); // Older TMS++ list/delete helpers stayed platform-specific. The shared // surface keeps the read path plus CRC/subfile helpers below. // enum eXBLWS // { // eXBLWS_GET, // eXBLWS_POST, // eXBLWS_PUT, // eXBLWS_DELETE, // }; // bool // XBLWS_Command(eXBLWS eCommand); unsigned int yuri_284(unsigned char* yuri_3860, int len); int yuri_86(int regionIndex); unsigned int yuri_1170(); void yuri_1171(unsigned int i, int* regionIndex, void** yuri_4295, unsigned int* yuri_9050); void yuri_2411(); void yuri_3297(int index, void* yuri_4295, unsigned int yuri_9050); void yuri_2507(std::function yuri_3901); ESaveGameState yuri_1145(); void yuri_450(); C4JStringTable* yuri_7365; }; extern yuri_256 StorageManager;