More changes to the denotch map converter. Added some tags. Still debugging some parsing issues.

git-svn-id: http://mc-server.googlecode.com/svn/trunk@30 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
admin@omencraft.com
2011-10-31 02:24:44 +00:00
parent e2f1cf51c7
commit 2e7781f7f0
4 changed files with 189 additions and 26 deletions
+6 -4
View File
@@ -74,13 +74,13 @@ int main () {
quicksort(toffarr, 0, 1023); //sort the array from smallest to larget offset locations so we only have to read through the file once.
for ( short ia = 0; ia < 1024; ia++ ) {//a region file can hold a maximum of 1024 chunks (32*32)
if (ia == 31) { ia++; }
if (ia < 35 ) { //only run chunk # 3
if (toffarr[ia] < 8192) { //offsets of less than 8192 are impossible. 0 means there is no chunk in a particular location.
if (toffarr[ia] > 0) { cout << "ERROR 2s31 IN COLLECTED CHUNK OFFSETS " << toffarr[ia]; fclose(f); return false; } //values between 0 and 8192 should be impossible.
//This file does not contain the max 1024 chunks, skip until we get to the first
} else { // found a chunk offset value
//Chunk data begins with a (big-endian) four-byte length field which indicates the exact length of the remaining chunk data in bytes. The following byte indicates the compression scheme used for chunk data, and the remaining (length-1) bytes are the compressed chunk data.
printf("Working on chunk %i\n", ia);
printf("Working on chunk %i :: %i\n", ia, toffarr[ia]);
if( fread( &byte1, sizeof(byte1), 1, f) != 1 ) { cout << "ERROR 2t32 READING FROM FILE " << SourceFile; fclose(f); return false; }
if( fread( &byte2, sizeof(byte2), 1, f) != 1 ) { cout << "ERROR 2y51 READING FROM FILE " << SourceFile; fclose(f); return false; }
if( fread( &byte3, sizeof(byte3), 1, f) != 1 ) { cout << "ERROR 3424 READING FROM FILE " << SourceFile; fclose(f); return false; }
@@ -128,7 +128,7 @@ int main () {
//testing of nbtparser.
cNBTData* NBTData = new cNBTData(BlockData, (testr));
cNBTData* NBTData = new cNBTData(BlockData, (int)DestSize);
NBTData->ParseData();
//NBTData->PrintData();
NBTData->OpenCompound("");
@@ -160,7 +160,8 @@ int main () {
//printf("array Blocks: %i\n", NBTData->GetByteArray("Blocks")[i]);
}
//printf("xPos: %i\n", NBTData->GetInteger("xPos") );
printf("Coord(X,Z): %i,%i\n", NBTData->GetInteger("xPos"), NBTData->GetInteger("zPos") );
NBTData->CloseCompound();// Close the compounds after you're done
NBTData->CloseCompound();
@@ -174,6 +175,7 @@ int main () {
}
}
} //only run chunk # 3
//if (ia == 30) { break; }
}
//return 0;