the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 94 lines 3.4 kB view raw
1#pragma once 2 3#include "FileHeader.h" 4#include "ConsoleSavePath.h" 5#include "ConsoleSaveFile.h" 6 7class ConsoleSaveFileOriginal : public ConsoleSaveFile 8{ 9private: 10 FileHeader header; 11 12 wstring m_fileName; 13 14// HANDLE hHeap; 15 static void *pvHeap; 16 static unsigned int pagesCommitted; 17#ifdef _LARGE_WORLDS 18 static const unsigned int CSF_PAGE_SIZE = 64 * 1024; 19 static const unsigned int MAX_PAGE_COUNT = 32 * 1024; // 2GB virtual allocation 20#elif defined(__PS3__) 21 static const unsigned int CSF_PAGE_SIZE = 1024 * 1024; 22 static const unsigned int MAX_PAGE_COUNT = 64; 23#else 24 static const unsigned int CSF_PAGE_SIZE = 64 * 1024; 25 static const unsigned int MAX_PAGE_COUNT = 1024; 26#endif 27 LPVOID pvSaveMem; 28 29 CRITICAL_SECTION m_lock; 30 31 void PrepareForWrite( FileEntry *file, DWORD nNumberOfBytesToWrite ); 32 void MoveDataBeyond(FileEntry *file, DWORD nNumberOfBytesToWrite); 33 34public: 35#if (defined __PS3__ || defined __ORBIS__ || defined __PSVITA__ || defined _DURANGO || defined _WINDOWS64) 36 static int SaveSaveDataCallback(LPVOID lpParam,bool bRes); 37#endif 38 ConsoleSaveFileOriginal(const wstring &fileName, LPVOID pvSaveData = NULL, DWORD fileSize = 0, bool forceCleanSave = false, ESavePlatform plat = SAVE_FILE_PLATFORM_LOCAL); 39 virtual ~ConsoleSaveFileOriginal(); 40 41 // 4J Stu - Initial implementation is intended to have a similar interface to the standard Xbox file access functions 42 43 virtual FileEntry *createFile( const ConsoleSavePath &fileName ); 44 virtual void deleteFile( FileEntry *file ); 45 46 virtual void setFilePointer(FileEntry *file,LONG lDistanceToMove,PLONG lpDistanceToMoveHigh,DWORD dwMoveMethod); 47 virtual BOOL writeFile( FileEntry *file, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten ); 48 virtual BOOL zeroFile(FileEntry *file, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten); 49 virtual BOOL readFile( FileEntry *file, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead ); 50 virtual BOOL closeHandle( FileEntry *file ); 51 52 virtual void finalizeWrite(); 53 54 virtual bool doesFileExist(ConsoleSavePath file); 55 56 virtual void Flush(bool autosave, bool updateThumbnail = true); 57 58#ifndef _CONTENT_PACKAGE 59 virtual void DebugFlushToFile(void *compressedData = NULL, unsigned int compressedDataSize = 0); 60#endif 61 virtual unsigned int getSizeOnDisk(); 62 63 virtual wstring getFilename(); 64 65 virtual vector<FileEntry *> *getFilesWithPrefix(const wstring &prefix); 66 virtual vector<FileEntry *> *getRegionFilesByDimension(unsigned int dimensionIndex); 67 68#if defined(__PS3__) || defined(__ORBIS__) || defined(__PSVITA__) 69 virtual wstring getPlayerDataFilenameForLoad(const PlayerUID& pUID); 70 virtual wstring getPlayerDataFilenameForSave(const PlayerUID& pUID); 71 virtual vector<FileEntry *> *getValidPlayerDatFiles(); 72#endif //__PS3__ 73 74 virtual int getSaveVersion(); 75 virtual int getOriginalSaveVersion(); 76 77 virtual void LockSaveAccess(); 78 virtual void ReleaseSaveAccess(); 79 80 virtual ESavePlatform getSavePlatform(); 81 virtual bool isSaveEndianDifferent(); 82 virtual void setLocalPlatform(); 83 virtual void setPlatform(ESavePlatform plat); 84 virtual ByteOrder getSaveEndian(); 85 virtual ByteOrder getLocalEndian(); 86 virtual void setEndian(ByteOrder endian); 87 virtual bool isLocalEndianDifferent(ESavePlatform plat); 88 89 virtual void ConvertRegionFile(File sourceFile); 90 virtual void ConvertToLocalPlatform(); 91 92protected: 93 virtual void *getWritePointer(FileEntry *file); 94};