mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-08-20 09:57:10 +00:00
Use standard byte buffers for save image metadata
This commit is contained in:
parent
2bc55b838d
commit
3e89da8dff
|
|
@ -7631,9 +7631,9 @@ unsigned int CMinecraftApp::FromBigEndian(unsigned int uiValue)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMinecraftApp::GetImageTextData(PBYTE pbImageData, DWORD dwImageBytes,unsigned char *pszSeed,unsigned int &uiHostOptions,bool &bHostOptionsRead,std::uint32_t &uiTexturePack)
|
void CMinecraftApp::GetImageTextData(std::uint8_t *imageData, unsigned int imageBytes, unsigned char *seedText, unsigned int &uiHostOptions, bool &bHostOptionsRead, std::uint32_t &uiTexturePack)
|
||||||
{
|
{
|
||||||
unsigned char *ucPtr=pbImageData;
|
std::uint8_t *ucPtr = imageData;
|
||||||
unsigned int uiCount=0;
|
unsigned int uiCount=0;
|
||||||
unsigned int uiChunkLen;
|
unsigned int uiChunkLen;
|
||||||
unsigned int uiChunkType;
|
unsigned int uiChunkType;
|
||||||
|
|
@ -7648,7 +7648,7 @@ void CMinecraftApp::GetImageTextData(PBYTE pbImageData, DWORD dwImageBytes,unsig
|
||||||
|
|
||||||
uiCount+=8;
|
uiCount+=8;
|
||||||
|
|
||||||
while(uiCount<dwImageBytes)
|
while(uiCount < imageBytes)
|
||||||
{
|
{
|
||||||
uiChunkLen=*(unsigned int *)&ucPtr[uiCount];
|
uiChunkLen=*(unsigned int *)&ucPtr[uiCount];
|
||||||
uiChunkLen=FromBigEndian(uiChunkLen);
|
uiChunkLen=FromBigEndian(uiChunkLen);
|
||||||
|
|
@ -7677,10 +7677,10 @@ void CMinecraftApp::GetImageTextData(PBYTE pbImageData, DWORD dwImageBytes,unsig
|
||||||
unsigned int uiValueC=0;
|
unsigned int uiValueC=0;
|
||||||
while(*pszKeyword!=0 && (pszKeyword < ucPtr + uiCount + uiChunkLen) )
|
while(*pszKeyword!=0 && (pszKeyword < ucPtr + uiCount + uiChunkLen) )
|
||||||
{
|
{
|
||||||
pszSeed[uiValueC++]=*pszKeyword;
|
seedText[uiValueC++]=*pszKeyword;
|
||||||
pszKeyword++;
|
pszKeyword++;
|
||||||
}
|
}
|
||||||
//memcpy(pszSeed,pszKeyword,uiChunkLen-8);
|
//memcpy(seedText,pszKeyword,uiChunkLen-8);
|
||||||
}
|
}
|
||||||
else if(strcmp(szKeyword,"4J_HOSTOPTIONS")==0)
|
else if(strcmp(szKeyword,"4J_HOSTOPTIONS")==0)
|
||||||
{
|
{
|
||||||
|
|
@ -7727,33 +7727,33 @@ void CMinecraftApp::GetImageTextData(PBYTE pbImageData, DWORD dwImageBytes,unsig
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int CMinecraftApp::CreateImageTextData(PBYTE bTextMetadata, __int64 seed, bool hasSeed, unsigned int uiHostOptions, unsigned int uiTexturePackId)
|
unsigned int CMinecraftApp::CreateImageTextData(std::uint8_t *textMetadata, __int64 seed, bool hasSeed, unsigned int uiHostOptions, unsigned int uiTexturePackId)
|
||||||
{
|
{
|
||||||
int iTextMetadataBytes = 0;
|
int iTextMetadataBytes = 0;
|
||||||
if(hasSeed)
|
if(hasSeed)
|
||||||
{
|
{
|
||||||
strcpy((char *)bTextMetadata,"4J_SEED");
|
strcpy((char *)textMetadata,"4J_SEED");
|
||||||
snprintf((char *)&bTextMetadata[8], 42, "%lld", (long long)seed);
|
snprintf((char *)&textMetadata[8], 42, "%lld", (long long)seed);
|
||||||
|
|
||||||
// get the length
|
// get the length
|
||||||
iTextMetadataBytes+=8;
|
iTextMetadataBytes+=8;
|
||||||
while(bTextMetadata[iTextMetadataBytes]!=0) iTextMetadataBytes++;
|
while(textMetadata[iTextMetadataBytes]!=0) iTextMetadataBytes++;
|
||||||
++iTextMetadataBytes; // Add a null terminator at the end of the seed value
|
++iTextMetadataBytes; // Add a null terminator at the end of the seed value
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save the host options that this world was last played with
|
// Save the host options that this world was last played with
|
||||||
strcpy((char *)&bTextMetadata[iTextMetadataBytes],"4J_HOSTOPTIONS");
|
strcpy((char *)&textMetadata[iTextMetadataBytes],"4J_HOSTOPTIONS");
|
||||||
snprintf( (char *)&bTextMetadata[iTextMetadataBytes + 15], 9, "%X", uiHostOptions);
|
snprintf( (char *)&textMetadata[iTextMetadataBytes + 15], 9, "%X", uiHostOptions);
|
||||||
|
|
||||||
iTextMetadataBytes += 15;
|
iTextMetadataBytes += 15;
|
||||||
while(bTextMetadata[iTextMetadataBytes]!=0) iTextMetadataBytes++;
|
while(textMetadata[iTextMetadataBytes]!=0) iTextMetadataBytes++;
|
||||||
++iTextMetadataBytes; // Add a null terminator at the end of the host options value
|
++iTextMetadataBytes; // Add a null terminator at the end of the host options value
|
||||||
|
|
||||||
// Save the texture pack id
|
// Save the texture pack id
|
||||||
strcpy((char *)&bTextMetadata[iTextMetadataBytes],"4J_TEXTUREPACK");
|
strcpy((char *)&textMetadata[iTextMetadataBytes],"4J_TEXTUREPACK");
|
||||||
|
|
||||||
iTextMetadataBytes += 15;
|
iTextMetadataBytes += 15;
|
||||||
while(bTextMetadata[iTextMetadataBytes]!=0) iTextMetadataBytes++;
|
while(textMetadata[iTextMetadataBytes]!=0) iTextMetadataBytes++;
|
||||||
|
|
||||||
return iTextMetadataBytes;
|
return iTextMetadataBytes;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -703,8 +703,8 @@ public:
|
||||||
bool CanRecordStatsAndAchievements();
|
bool CanRecordStatsAndAchievements();
|
||||||
|
|
||||||
// World seed from png image
|
// World seed from png image
|
||||||
void GetImageTextData(PBYTE pbImageData, DWORD dwImageBytes,unsigned char *pszSeed,unsigned int &uiHostOptions,bool &bHostOptionsRead,std::uint32_t &uiTexturePack);
|
void GetImageTextData(std::uint8_t *imageData, unsigned int imageBytes, unsigned char *seedText, unsigned int &uiHostOptions, bool &bHostOptionsRead, std::uint32_t &uiTexturePack);
|
||||||
unsigned int CreateImageTextData(PBYTE bTextMetadata, __int64 seed, bool hasSeed, unsigned int uiHostOptions, unsigned int uiTexturePackId);
|
unsigned int CreateImageTextData(std::uint8_t *textMetadata, __int64 seed, bool hasSeed, unsigned int uiHostOptions, unsigned int uiTexturePackId);
|
||||||
|
|
||||||
// Game rules
|
// Game rules
|
||||||
GameRuleManager m_gameRules;
|
GameRuleManager m_gameRules;
|
||||||
|
|
|
||||||
|
|
@ -2446,7 +2446,7 @@ int UIScene_LoadOrJoinMenu::DownloadSonyCrossSaveThreadProc( LPVOID lpParameter
|
||||||
StorageManager.GetDefaultSaveImage(&pbDataSaveImage, &dwDataSizeSaveImage); // Get the default save thumbnail (as set by SetDefaultImages) for use on saving games t
|
StorageManager.GetDefaultSaveImage(&pbDataSaveImage, &dwDataSizeSaveImage); // Get the default save thumbnail (as set by SetDefaultImages) for use on saving games t
|
||||||
StorageManager.GetDefaultSaveThumbnail(&pbThumbnailData,&dwThumbnailDataSize); // Get the default save image (as set by SetDefaultImages) for use on saving games that
|
StorageManager.GetDefaultSaveThumbnail(&pbThumbnailData,&dwThumbnailDataSize); // Get the default save image (as set by SetDefaultImages) for use on saving games that
|
||||||
|
|
||||||
BYTE bTextMetadata[88];
|
std::uint8_t bTextMetadata[88];
|
||||||
ZeroMemory(bTextMetadata,88);
|
ZeroMemory(bTextMetadata,88);
|
||||||
int iTextMetadataBytes = app.CreateImageTextData(bTextMetadata, app.getRemoteStorage()->getSaveSeed(), true, app.getRemoteStorage()->getSaveHostOptions(), app.getRemoteStorage()->getSaveTexturePack() );
|
int iTextMetadataBytes = app.CreateImageTextData(bTextMetadata, app.getRemoteStorage()->getSaveSeed(), true, app.getRemoteStorage()->getSaveHostOptions(), app.getRemoteStorage()->getSaveTexturePack() );
|
||||||
|
|
||||||
|
|
@ -2606,7 +2606,7 @@ int UIScene_LoadOrJoinMenu::DownloadSonyCrossSaveThreadProc( LPVOID lpParameter
|
||||||
StorageManager.GetDefaultSaveImage(&pbDataSaveImage, &dwDataSizeSaveImage); // Get the default save thumbnail (as set by SetDefaultImages) for use on saving games t
|
StorageManager.GetDefaultSaveImage(&pbDataSaveImage, &dwDataSizeSaveImage); // Get the default save thumbnail (as set by SetDefaultImages) for use on saving games t
|
||||||
StorageManager.GetDefaultSaveThumbnail(&pbThumbnailData,&dwThumbnailDataSize); // Get the default save image (as set by SetDefaultImages) for use on saving games that
|
StorageManager.GetDefaultSaveThumbnail(&pbThumbnailData,&dwThumbnailDataSize); // Get the default save image (as set by SetDefaultImages) for use on saving games that
|
||||||
|
|
||||||
BYTE bTextMetadata[88];
|
std::uint8_t bTextMetadata[88];
|
||||||
ZeroMemory(bTextMetadata,88);
|
ZeroMemory(bTextMetadata,88);
|
||||||
int iTextMetadataBytes = app.CreateImageTextData(bTextMetadata, app.getRemoteStorage()->getSaveSeed(), true, app.getRemoteStorage()->getSaveHostOptions(), app.getRemoteStorage()->getSaveTexturePack() );
|
int iTextMetadataBytes = app.CreateImageTextData(bTextMetadata, app.getRemoteStorage()->getSaveSeed(), true, app.getRemoteStorage()->getSaveHostOptions(), app.getRemoteStorage()->getSaveTexturePack() );
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -762,7 +762,7 @@ void ConsoleSaveFileOriginal::Flush(bool autosave, bool updateThumbnail )
|
||||||
app.GetSaveThumbnail(&pbThumbnailData,&dwThumbnailDataSize,&pbDataSaveImage,&dwDataSizeSaveImage);
|
app.GetSaveThumbnail(&pbThumbnailData,&dwThumbnailDataSize,&pbDataSaveImage,&dwDataSizeSaveImage);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
BYTE bTextMetadata[88];
|
std::uint8_t bTextMetadata[88];
|
||||||
ZeroMemory(bTextMetadata,88);
|
ZeroMemory(bTextMetadata,88);
|
||||||
|
|
||||||
__int64 seed = 0;
|
__int64 seed = 0;
|
||||||
|
|
|
||||||
|
|
@ -1426,7 +1426,7 @@ void ConsoleSaveFileSplit::Flush(bool autosave, bool updateThumbnail)
|
||||||
app.GetSaveThumbnail(&pbThumbnailData,&dwThumbnailDataSize,&pbDataSaveImage,&dwDataSizeSaveImage);
|
app.GetSaveThumbnail(&pbThumbnailData,&dwThumbnailDataSize,&pbDataSaveImage,&dwDataSizeSaveImage);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
BYTE bTextMetadata[88];
|
std::uint8_t bTextMetadata[88];
|
||||||
ZeroMemory(bTextMetadata,88);
|
ZeroMemory(bTextMetadata,88);
|
||||||
|
|
||||||
__int64 seed = 0;
|
__int64 seed = 0;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue