bool cIDCountSerializer::Save(void) { cFastNBTWriter Writer; if (m_MapCount > 0) { Writer.AddShort("map", m_MapCount - 1); } Writer.Finish(); #ifdef _DEBUG cParsedNBT TestParse(Writer.GetResult().data(), Writer.GetResult().size()); ASSERT(TestParse.IsValid()); #endif // _DEBUG cFile File; if (!File.Open(FILE_IO_PREFIX + m_Path, cFile::fmWrite)) { return false; } // NOTE: idcounts.dat is not compressed (raw format) File.Write(Writer.GetResult().data(), Writer.GetResult().size()); File.Close(); return true; }
bool cMapSerializer::Save(void) { cFastNBTWriter Writer; SaveMapToNBT(Writer); Writer.Finish(); #ifdef _DEBUG cParsedNBT TestParse(Writer.GetResult().data(), Writer.GetResult().size()); ASSERT(TestParse.IsValid()); #endif // _DEBUG cFile File; if (!File.Open(FILE_IO_PREFIX + m_Path, cFile::fmWrite)) { return false; } AString Compressed; int res = CompressStringGZIP(Writer.GetResult().data(), Writer.GetResult().size(), Compressed); if (res != Z_OK) { return false; } File.Write(Compressed.data(), Compressed.size()); File.Close(); return true; }
cWSSAnvil::cWSSAnvil(cWorld * a_World) : super(a_World) { // Create a level.dat file for mapping tools, if it doesn't already exist: AString fnam; Printf(fnam, "%s/level.dat", a_World->GetName().c_str()); if (!cFile::Exists(fnam)) { cFastNBTWriter Writer; Writer.BeginCompound(""); Writer.AddInt("SpawnX", (int)(a_World->GetSpawnX())); Writer.AddInt("SpawnY", (int)(a_World->GetSpawnY())); Writer.AddInt("SpawnZ", (int)(a_World->GetSpawnZ())); Writer.EndCompound(); Writer.Finish(); #ifdef _DEBUG cParsedNBT TestParse(Writer.GetResult().data(), Writer.GetResult().size()); ASSERT(TestParse.IsValid()); #endif // _DEBUG gzFile gz = gzopen((FILE_IO_PREFIX + fnam).c_str(), "wb"); if (gz != NULL) { gzwrite(gz, Writer.GetResult().data(), Writer.GetResult().size()); } gzclose(gz); } }