mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-10-04 04:19:04 +00:00
Use a portable seek origin for save files
This commit is contained in:
parent
45c22ab6cc
commit
83ba8d8384
|
|
@ -543,7 +543,7 @@ bool MinecraftServer::loadLevel(LevelStorageSource *storageSource, const std::ws
|
||||||
ba_gameRules.length = fe->getFileSize();
|
ba_gameRules.length = fe->getFileSize();
|
||||||
ba_gameRules.data = new BYTE[ ba_gameRules.length ];
|
ba_gameRules.data = new BYTE[ ba_gameRules.length ];
|
||||||
|
|
||||||
csf->setFilePointer(fe,0,NULL,FILE_BEGIN);
|
csf->setFilePointer(fe, 0, SaveFileSeekOrigin::Begin);
|
||||||
csf->readFile(fe, ba_gameRules.data, ba_gameRules.length, &numberOfBytesRead);
|
csf->readFile(fe, ba_gameRules.data, ba_gameRules.length, &numberOfBytesRead);
|
||||||
assert(numberOfBytesRead == ba_gameRules.length);
|
assert(numberOfBytesRead == ba_gameRules.length);
|
||||||
|
|
||||||
|
|
@ -809,7 +809,7 @@ void MinecraftServer::saveGameRules()
|
||||||
{
|
{
|
||||||
ConsoleSaveFile *csf = getLevel(0)->getLevelStorage()->getSaveFile();
|
ConsoleSaveFile *csf = getLevel(0)->getLevelStorage()->getSaveFile();
|
||||||
FileEntry *fe = csf->createFile(ConsoleSavePath(GAME_RULE_SAVENAME));
|
FileEntry *fe = csf->createFile(ConsoleSavePath(GAME_RULE_SAVENAME));
|
||||||
csf->setFilePointer(fe, 0, NULL, FILE_BEGIN);
|
csf->setFilePointer(fe, 0, SaveFileSeekOrigin::Begin);
|
||||||
unsigned int length;
|
unsigned int length;
|
||||||
csf->writeFile(fe, ba.data, ba.length, &length );
|
csf->writeFile(fe, ba.data, ba.length, &length );
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -308,7 +308,7 @@ void CScene_DebugOverlay::SaveLimitedFile(int chunkRadius)
|
||||||
FileEntry *origFileEntry = currentSave->createFile( std::wstring( L"level.dat" ) );
|
FileEntry *origFileEntry = currentSave->createFile( std::wstring( L"level.dat" ) );
|
||||||
byteArray levelData( origFileEntry->getFileSize() );
|
byteArray levelData( origFileEntry->getFileSize() );
|
||||||
unsigned int bytesRead;
|
unsigned int bytesRead;
|
||||||
currentSave->setFilePointer(origFileEntry,0,NULL,FILE_BEGIN);
|
currentSave->setFilePointer(origFileEntry, 0, SaveFileSeekOrigin::Begin);
|
||||||
currentSave->readFile(
|
currentSave->readFile(
|
||||||
origFileEntry,
|
origFileEntry,
|
||||||
levelData.data, // data buffer
|
levelData.data, // data buffer
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,13 @@
|
||||||
#include "FileHeader.h"
|
#include "FileHeader.h"
|
||||||
#include "ConsoleSavePath.h"
|
#include "ConsoleSavePath.h"
|
||||||
|
|
||||||
|
enum class SaveFileSeekOrigin
|
||||||
|
{
|
||||||
|
Begin,
|
||||||
|
Current,
|
||||||
|
End
|
||||||
|
};
|
||||||
|
|
||||||
class ConsoleSaveFile
|
class ConsoleSaveFile
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -10,7 +17,7 @@ public:
|
||||||
|
|
||||||
virtual FileEntry *createFile( const ConsoleSavePath &fileName ) = 0;
|
virtual FileEntry *createFile( const ConsoleSavePath &fileName ) = 0;
|
||||||
virtual void deleteFile( FileEntry *file ) = 0;
|
virtual void deleteFile( FileEntry *file ) = 0;
|
||||||
virtual void setFilePointer( FileEntry *file,LONG lDistanceToMove, PLONG lpDistanceToMoveHigh,DWORD dwMoveMethod) = 0;
|
virtual void setFilePointer( FileEntry *file, unsigned int distanceToMove, SaveFileSeekOrigin seekOrigin ) = 0;
|
||||||
virtual bool writeFile( FileEntry *file, const void *lpBuffer, unsigned int nNumberOfBytesToWrite, unsigned int *lpNumberOfBytesWritten) = 0;
|
virtual bool writeFile( FileEntry *file, const void *lpBuffer, unsigned int nNumberOfBytesToWrite, unsigned int *lpNumberOfBytesWritten) = 0;
|
||||||
virtual bool zeroFile(FileEntry *file, unsigned int nNumberOfBytesToWrite, unsigned int *lpNumberOfBytesWritten) = 0;
|
virtual bool zeroFile(FileEntry *file, unsigned int nNumberOfBytesToWrite, unsigned int *lpNumberOfBytesWritten) = 0;
|
||||||
virtual bool readFile( FileEntry *file, void *lpBuffer, unsigned int nNumberOfBytesToRead, unsigned int *lpNumberOfBytesRead ) = 0;
|
virtual bool readFile( FileEntry *file, void *lpBuffer, unsigned int nNumberOfBytesToRead, unsigned int *lpNumberOfBytesRead ) = 0;
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ ConsoleSaveFileInputStream::ConsoleSaveFileInputStream(ConsoleSaveFile *saveFile
|
||||||
m_saveFile = saveFile;
|
m_saveFile = saveFile;
|
||||||
m_file = m_saveFile->createFile( file );
|
m_file = m_saveFile->createFile( file );
|
||||||
|
|
||||||
m_saveFile->setFilePointer( m_file, 0, NULL, FILE_BEGIN );
|
m_saveFile->setFilePointer( m_file, 0, SaveFileSeekOrigin::Begin );
|
||||||
}
|
}
|
||||||
|
|
||||||
ConsoleSaveFileInputStream::ConsoleSaveFileInputStream(ConsoleSaveFile *saveFile, FileEntry *file)
|
ConsoleSaveFileInputStream::ConsoleSaveFileInputStream(ConsoleSaveFile *saveFile, FileEntry *file)
|
||||||
|
|
@ -17,7 +17,7 @@ ConsoleSaveFileInputStream::ConsoleSaveFileInputStream(ConsoleSaveFile *saveFile
|
||||||
m_saveFile = saveFile;
|
m_saveFile = saveFile;
|
||||||
m_file = file;
|
m_file = file;
|
||||||
|
|
||||||
m_saveFile->setFilePointer( m_file, 0, NULL, FILE_BEGIN );
|
m_saveFile->setFilePointer( m_file, 0, SaveFileSeekOrigin::Begin );
|
||||||
}
|
}
|
||||||
|
|
||||||
//Reads a byte of data from this input stream. This method blocks if no input is yet available.
|
//Reads a byte of data from this input stream. This method blocks if no input is yet available.
|
||||||
|
|
|
||||||
|
|
@ -299,15 +299,22 @@ void ConsoleSaveFileOriginal::deleteFile( FileEntry *file )
|
||||||
ReleaseSaveAccess();
|
ReleaseSaveAccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConsoleSaveFileOriginal::setFilePointer(FileEntry *file,LONG lDistanceToMove,PLONG lpDistanceToMoveHigh,DWORD dwMoveMethod)
|
void ConsoleSaveFileOriginal::setFilePointer(FileEntry *file, unsigned int distanceToMove, SaveFileSeekOrigin seekOrigin)
|
||||||
{
|
{
|
||||||
LockSaveAccess();
|
LockSaveAccess();
|
||||||
|
|
||||||
file->currentFilePointer = file->data.startOffset + lDistanceToMove;
|
switch( seekOrigin )
|
||||||
|
|
||||||
if( dwMoveMethod == FILE_END)
|
|
||||||
{
|
{
|
||||||
file->currentFilePointer += file->getFileSize();
|
case SaveFileSeekOrigin::Current:
|
||||||
|
file->currentFilePointer += distanceToMove;
|
||||||
|
break;
|
||||||
|
case SaveFileSeekOrigin::End:
|
||||||
|
file->currentFilePointer = file->data.startOffset + file->getFileSize() + distanceToMove;
|
||||||
|
break;
|
||||||
|
case SaveFileSeekOrigin::Begin:
|
||||||
|
default:
|
||||||
|
file->currentFilePointer = file->data.startOffset + distanceToMove;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ReleaseSaveAccess();
|
ReleaseSaveAccess();
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ public:
|
||||||
virtual FileEntry *createFile( const ConsoleSavePath &fileName );
|
virtual FileEntry *createFile( const ConsoleSavePath &fileName );
|
||||||
virtual void deleteFile( FileEntry *file );
|
virtual void deleteFile( FileEntry *file );
|
||||||
|
|
||||||
virtual void setFilePointer(FileEntry *file,LONG lDistanceToMove,PLONG lpDistanceToMoveHigh,DWORD dwMoveMethod);
|
virtual void setFilePointer(FileEntry *file, unsigned int distanceToMove, SaveFileSeekOrigin seekOrigin);
|
||||||
virtual bool writeFile( FileEntry *file, const void *lpBuffer, unsigned int nNumberOfBytesToWrite, unsigned int *lpNumberOfBytesWritten );
|
virtual bool writeFile( FileEntry *file, const void *lpBuffer, unsigned int nNumberOfBytesToWrite, unsigned int *lpNumberOfBytesWritten );
|
||||||
virtual bool zeroFile(FileEntry *file, unsigned int nNumberOfBytesToWrite, unsigned int *lpNumberOfBytesWritten);
|
virtual bool zeroFile(FileEntry *file, unsigned int nNumberOfBytesToWrite, unsigned int *lpNumberOfBytesWritten);
|
||||||
virtual bool readFile( FileEntry *file, void *lpBuffer, unsigned int nNumberOfBytesToRead, unsigned int *lpNumberOfBytesRead );
|
virtual bool readFile( FileEntry *file, void *lpBuffer, unsigned int nNumberOfBytesToRead, unsigned int *lpNumberOfBytesRead );
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ ConsoleSaveFileOutputStream::ConsoleSaveFileOutputStream(ConsoleSaveFile *saveFi
|
||||||
|
|
||||||
m_file = m_saveFile->createFile(file);
|
m_file = m_saveFile->createFile(file);
|
||||||
|
|
||||||
m_saveFile->setFilePointer( m_file, 0, NULL, FILE_BEGIN );
|
m_saveFile->setFilePointer( m_file, 0, SaveFileSeekOrigin::Begin );
|
||||||
}
|
}
|
||||||
|
|
||||||
ConsoleSaveFileOutputStream::ConsoleSaveFileOutputStream(ConsoleSaveFile *saveFile, FileEntry *file)
|
ConsoleSaveFileOutputStream::ConsoleSaveFileOutputStream(ConsoleSaveFile *saveFile, FileEntry *file)
|
||||||
|
|
@ -28,7 +28,7 @@ ConsoleSaveFileOutputStream::ConsoleSaveFileOutputStream(ConsoleSaveFile *saveFi
|
||||||
|
|
||||||
m_file = file;
|
m_file = file;
|
||||||
|
|
||||||
m_saveFile->setFilePointer( m_file, 0, NULL, FILE_BEGIN );
|
m_saveFile->setFilePointer( m_file, 0, SaveFileSeekOrigin::Begin );
|
||||||
}
|
}
|
||||||
|
|
||||||
//Writes the specified byte to this file output stream. Implements the write method of OutputStream.
|
//Writes the specified byte to this file output stream. Implements the write method of OutputStream.
|
||||||
|
|
|
||||||
|
|
@ -423,7 +423,7 @@ ConsoleSaveFileSplit::ConsoleSaveFileSplit(ConsoleSaveFile *sourceSave, bool alr
|
||||||
for(AUTO_VAR(it, sourceFiles->begin()); it != sourceFiles->end(); ++it)
|
for(AUTO_VAR(it, sourceFiles->begin()); it != sourceFiles->end(); ++it)
|
||||||
{
|
{
|
||||||
FileEntry *sourceEntry = *it;
|
FileEntry *sourceEntry = *it;
|
||||||
sourceSave->setFilePointer(sourceEntry,0,NULL,FILE_BEGIN);
|
sourceSave->setFilePointer(sourceEntry, 0, SaveFileSeekOrigin::Begin);
|
||||||
|
|
||||||
FileEntry *targetEntry = createFile(ConsoleSavePath(sourceEntry->data.filename));
|
FileEntry *targetEntry = createFile(ConsoleSavePath(sourceEntry->data.filename));
|
||||||
|
|
||||||
|
|
@ -687,22 +687,29 @@ void ConsoleSaveFileSplit::deleteFile( FileEntry *file )
|
||||||
ReleaseSaveAccess();
|
ReleaseSaveAccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConsoleSaveFileSplit::setFilePointer(FileEntry *file,LONG lDistanceToMove,PLONG lpDistanceToMoveHigh,DWORD dwMoveMethod)
|
void ConsoleSaveFileSplit::setFilePointer(FileEntry *file, unsigned int distanceToMove, SaveFileSeekOrigin seekOrigin)
|
||||||
{
|
{
|
||||||
LockSaveAccess();
|
LockSaveAccess();
|
||||||
|
|
||||||
if( file->isRegionFile() )
|
if( seekOrigin == SaveFileSeekOrigin::Current )
|
||||||
{
|
{
|
||||||
file->currentFilePointer = lDistanceToMove;
|
file->currentFilePointer += distanceToMove;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
file->currentFilePointer = file->data.startOffset + lDistanceToMove;
|
if( file->isRegionFile() )
|
||||||
}
|
{
|
||||||
|
file->currentFilePointer = distanceToMove;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
file->currentFilePointer = file->data.startOffset + distanceToMove;
|
||||||
|
}
|
||||||
|
|
||||||
if( dwMoveMethod == FILE_END)
|
if( seekOrigin == SaveFileSeekOrigin::End )
|
||||||
{
|
{
|
||||||
file->currentFilePointer += file->getFileSize();
|
file->currentFilePointer += file->getFileSize();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ReleaseSaveAccess();
|
ReleaseSaveAccess();
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ public:
|
||||||
virtual FileEntry *createFile( const ConsoleSavePath &fileName );
|
virtual FileEntry *createFile( const ConsoleSavePath &fileName );
|
||||||
virtual void deleteFile( FileEntry *file );
|
virtual void deleteFile( FileEntry *file );
|
||||||
|
|
||||||
virtual void setFilePointer(FileEntry *file,LONG lDistanceToMove,PLONG lpDistanceToMoveHigh,DWORD dwMoveMethod);
|
virtual void setFilePointer(FileEntry *file, unsigned int distanceToMove, SaveFileSeekOrigin seekOrigin);
|
||||||
virtual bool writeFile( FileEntry *file, const void *lpBuffer, unsigned int nNumberOfBytesToWrite, unsigned int *lpNumberOfBytesWritten );
|
virtual bool writeFile( FileEntry *file, const void *lpBuffer, unsigned int nNumberOfBytesToWrite, unsigned int *lpNumberOfBytesWritten );
|
||||||
virtual bool zeroFile(FileEntry *file, unsigned int nNumberOfBytesToWrite, unsigned int *lpNumberOfBytesWritten);
|
virtual bool zeroFile(FileEntry *file, unsigned int nNumberOfBytesToWrite, unsigned int *lpNumberOfBytesWritten);
|
||||||
virtual bool readFile( FileEntry *file, void *lpBuffer, unsigned int nNumberOfBytesToRead, unsigned int *lpNumberOfBytesRead );
|
virtual bool readFile( FileEntry *file, void *lpBuffer, unsigned int nNumberOfBytesToRead, unsigned int *lpNumberOfBytesRead );
|
||||||
|
|
|
||||||
|
|
@ -270,7 +270,7 @@ LevelData *DirectoryLevelStorage::prepareLevel()
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
getSaveFile()->setFilePointer(fileEntry,0,NULL, FILE_BEGIN);
|
getSaveFile()->setFilePointer(fileEntry, 0, SaveFileSeekOrigin::Begin);
|
||||||
|
|
||||||
#ifdef _LARGE_WORLDS
|
#ifdef _LARGE_WORLDS
|
||||||
byteArray data(fileEntry->getFileSize());
|
byteArray data(fileEntry->getFileSize());
|
||||||
|
|
@ -683,7 +683,7 @@ void DirectoryLevelStorage::saveMapIdLookup()
|
||||||
{
|
{
|
||||||
unsigned int NumberOfBytesWritten;
|
unsigned int NumberOfBytesWritten;
|
||||||
FileEntry *fileEntry = m_saveFile->createFile(file);
|
FileEntry *fileEntry = m_saveFile->createFile(file);
|
||||||
m_saveFile->setFilePointer(fileEntry,0,NULL, FILE_BEGIN);
|
m_saveFile->setFilePointer(fileEntry, 0, SaveFileSeekOrigin::Begin);
|
||||||
|
|
||||||
#ifdef _LARGE_WORLDS
|
#ifdef _LARGE_WORLDS
|
||||||
ByteArrayOutputStream baos;
|
ByteArrayOutputStream baos;
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ RegionFile::RegionFile(ConsoleSaveFile *saveFile, File *path)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
fileEntry = m_saveFile->createFile( fileName->getName() );
|
fileEntry = m_saveFile->createFile( fileName->getName() );
|
||||||
m_saveFile->setFilePointer( fileEntry, 0, NULL, FILE_END );
|
m_saveFile->setFilePointer( fileEntry, 0, SaveFileSeekOrigin::End );
|
||||||
|
|
||||||
if ( fileEntry->getFileSize() < SECTOR_BYTES)
|
if ( fileEntry->getFileSize() < SECTOR_BYTES)
|
||||||
{
|
{
|
||||||
|
|
@ -91,7 +91,7 @@ RegionFile::RegionFile(ConsoleSaveFile *saveFile, File *path)
|
||||||
sectorFree->at(0) = false; // chunk offset table
|
sectorFree->at(0) = false; // chunk offset table
|
||||||
sectorFree->at(1) = false; // for the last modified info
|
sectorFree->at(1) = false; // for the last modified info
|
||||||
|
|
||||||
m_saveFile->setFilePointer( fileEntry, 0, NULL, FILE_BEGIN );
|
m_saveFile->setFilePointer( fileEntry, 0, SaveFileSeekOrigin::Begin );
|
||||||
for (int i = 0; i < SECTOR_INTS; ++i)
|
for (int i = 0; i < SECTOR_INTS; ++i)
|
||||||
{
|
{
|
||||||
unsigned int offset = 0;
|
unsigned int offset = 0;
|
||||||
|
|
@ -139,11 +139,11 @@ void RegionFile::writeAllOffsets() // used for the file ConsoleSaveFile conversi
|
||||||
m_saveFile->LockSaveAccess();
|
m_saveFile->LockSaveAccess();
|
||||||
|
|
||||||
unsigned int numberOfBytesWritten = 0;
|
unsigned int numberOfBytesWritten = 0;
|
||||||
m_saveFile->setFilePointer( fileEntry, 0, NULL, FILE_BEGIN );
|
m_saveFile->setFilePointer( fileEntry, 0, SaveFileSeekOrigin::Begin );
|
||||||
m_saveFile->writeFile(fileEntry,offsets, SECTOR_BYTES ,&numberOfBytesWritten);
|
m_saveFile->writeFile(fileEntry,offsets, SECTOR_BYTES ,&numberOfBytesWritten);
|
||||||
|
|
||||||
numberOfBytesWritten = 0;
|
numberOfBytesWritten = 0;
|
||||||
m_saveFile->setFilePointer( fileEntry, SECTOR_BYTES, NULL, FILE_BEGIN );
|
m_saveFile->setFilePointer( fileEntry, SECTOR_BYTES, SaveFileSeekOrigin::Begin );
|
||||||
m_saveFile->writeFile(fileEntry, chunkTimestamps, SECTOR_BYTES, &numberOfBytesWritten);
|
m_saveFile->writeFile(fileEntry, chunkTimestamps, SECTOR_BYTES, &numberOfBytesWritten);
|
||||||
|
|
||||||
m_saveFile->ReleaseSaveAccess();
|
m_saveFile->ReleaseSaveAccess();
|
||||||
|
|
@ -199,7 +199,7 @@ DataInputStream *RegionFile::getChunkDataInputStream(int x, int z) // TODO - was
|
||||||
m_saveFile->LockSaveAccess();
|
m_saveFile->LockSaveAccess();
|
||||||
|
|
||||||
//SetFilePointer(file,sectorNumber * SECTOR_BYTES,0,FILE_BEGIN);
|
//SetFilePointer(file,sectorNumber * SECTOR_BYTES,0,FILE_BEGIN);
|
||||||
m_saveFile->setFilePointer( fileEntry, sectorNumber * SECTOR_BYTES, NULL, FILE_BEGIN);
|
m_saveFile->setFilePointer( fileEntry, sectorNumber * SECTOR_BYTES, SaveFileSeekOrigin::Begin);
|
||||||
|
|
||||||
unsigned int length;
|
unsigned int length;
|
||||||
unsigned int decompLength;
|
unsigned int decompLength;
|
||||||
|
|
@ -373,7 +373,7 @@ void RegionFile::write(int x, int z, uint8_t *data, int length) // TODO - was s
|
||||||
*/
|
*/
|
||||||
// debug("SAVE", x, z, length, "grow");
|
// debug("SAVE", x, z, length, "grow");
|
||||||
//SetFilePointer(file,0,0,FILE_END);
|
//SetFilePointer(file,0,0,FILE_END);
|
||||||
m_saveFile->setFilePointer( fileEntry, 0, NULL, FILE_END );
|
m_saveFile->setFilePointer( fileEntry, 0, SaveFileSeekOrigin::End );
|
||||||
|
|
||||||
sectorNumber = (int)sectorFree->size();
|
sectorNumber = (int)sectorFree->size();
|
||||||
#ifndef _CONTENT_PACAKGE
|
#ifndef _CONTENT_PACAKGE
|
||||||
|
|
@ -407,7 +407,7 @@ void RegionFile::write(int sectorNumber, uint8_t *data, int length, unsigned int
|
||||||
{
|
{
|
||||||
unsigned int numberOfBytesWritten = 0;
|
unsigned int numberOfBytesWritten = 0;
|
||||||
//SetFilePointer(file,sectorNumber * SECTOR_BYTES,0,FILE_BEGIN);
|
//SetFilePointer(file,sectorNumber * SECTOR_BYTES,0,FILE_BEGIN);
|
||||||
m_saveFile->setFilePointer( fileEntry, sectorNumber * SECTOR_BYTES, NULL, FILE_BEGIN );
|
m_saveFile->setFilePointer( fileEntry, sectorNumber * SECTOR_BYTES, SaveFileSeekOrigin::Begin );
|
||||||
|
|
||||||
// 4J - this differs a bit from the java file format. Java has length stored as an int, then a type as a byte, then length-1 bytes of data
|
// 4J - this differs a bit from the java file format. Java has length stored as an int, then a type as a byte, then length-1 bytes of data
|
||||||
// We store length and decompression length as ints, then length bytes of xbox LZX compressed data
|
// We store length and decompression length as ints, then length bytes of xbox LZX compressed data
|
||||||
|
|
@ -426,7 +426,7 @@ void RegionFile::zero(int sectorNumber, int length)
|
||||||
{
|
{
|
||||||
unsigned int numberOfBytesWritten = 0;
|
unsigned int numberOfBytesWritten = 0;
|
||||||
//SetFilePointer(file,sectorNumber * SECTOR_BYTES,0,FILE_BEGIN);
|
//SetFilePointer(file,sectorNumber * SECTOR_BYTES,0,FILE_BEGIN);
|
||||||
m_saveFile->setFilePointer( fileEntry, sectorNumber * SECTOR_BYTES, NULL, FILE_BEGIN );
|
m_saveFile->setFilePointer( fileEntry, sectorNumber * SECTOR_BYTES, SaveFileSeekOrigin::Begin );
|
||||||
m_saveFile->zeroFile( fileEntry, length, &numberOfBytesWritten );
|
m_saveFile->zeroFile( fileEntry, length, &numberOfBytesWritten );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -449,7 +449,7 @@ bool RegionFile::hasChunk(int x, int z)
|
||||||
// 4J added - write the initial two sectors that used to be written in the ctor when the file was empty
|
// 4J added - write the initial two sectors that used to be written in the ctor when the file was empty
|
||||||
void RegionFile::insertInitialSectors()
|
void RegionFile::insertInitialSectors()
|
||||||
{
|
{
|
||||||
m_saveFile->setFilePointer( fileEntry, 0, NULL, FILE_BEGIN );
|
m_saveFile->setFilePointer( fileEntry, 0, SaveFileSeekOrigin::Begin );
|
||||||
unsigned int numberOfBytesWritten = 0;
|
unsigned int numberOfBytesWritten = 0;
|
||||||
uint8_t zeroBytes[ SECTOR_BYTES ];
|
uint8_t zeroBytes[ SECTOR_BYTES ];
|
||||||
ZeroMemory(zeroBytes, SECTOR_BYTES);
|
ZeroMemory(zeroBytes, SECTOR_BYTES);
|
||||||
|
|
@ -472,7 +472,7 @@ void RegionFile::setOffset(int x, int z, int offset)
|
||||||
|
|
||||||
unsigned int numberOfBytesWritten = 0;
|
unsigned int numberOfBytesWritten = 0;
|
||||||
offsets[x + z * 32] = offset;
|
offsets[x + z * 32] = offset;
|
||||||
m_saveFile->setFilePointer( fileEntry, (x + z * 32) * 4, NULL, FILE_BEGIN );
|
m_saveFile->setFilePointer( fileEntry, (x + z * 32) * 4, SaveFileSeekOrigin::Begin );
|
||||||
|
|
||||||
m_saveFile->writeFile(fileEntry,&offset,4,&numberOfBytesWritten);
|
m_saveFile->writeFile(fileEntry,&offset,4,&numberOfBytesWritten);
|
||||||
}
|
}
|
||||||
|
|
@ -486,7 +486,7 @@ void RegionFile::setTimestamp(int x, int z, int value)
|
||||||
|
|
||||||
unsigned int numberOfBytesWritten = 0;
|
unsigned int numberOfBytesWritten = 0;
|
||||||
chunkTimestamps[x + z * 32] = value;
|
chunkTimestamps[x + z * 32] = value;
|
||||||
m_saveFile->setFilePointer( fileEntry, SECTOR_BYTES + (x + z * 32) * 4, NULL, FILE_BEGIN );
|
m_saveFile->setFilePointer( fileEntry, SECTOR_BYTES + (x + z * 32) * 4, SaveFileSeekOrigin::Begin );
|
||||||
|
|
||||||
m_saveFile->writeFile(fileEntry,&value,4,&numberOfBytesWritten);
|
m_saveFile->writeFile(fileEntry,&value,4,&numberOfBytesWritten);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue