summaryrefslogtreecommitdiffstats
path: root/converter/cNBTData.h
diff options
context:
space:
mode:
authoradmin@omencraft.com <admin@omencraft.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2011-11-04 20:28:58 +0100
committeradmin@omencraft.com <admin@omencraft.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2011-11-04 20:28:58 +0100
commitef4ec35417a58c4a564c1ed83ca69074cd94d95a (patch)
treeca5c2b708991f2410ec553c76c6843c50e1fb6d8 /converter/cNBTData.h
parentChanges to the denotch map converter. Now runs 20 times faster than before. Not done yet. (diff)
downloadcuberite-ef4ec35417a58c4a564c1ed83ca69074cd94d95a.tar
cuberite-ef4ec35417a58c4a564c1ed83ca69074cd94d95a.tar.gz
cuberite-ef4ec35417a58c4a564c1ed83ca69074cd94d95a.tar.bz2
cuberite-ef4ec35417a58c4a564c1ed83ca69074cd94d95a.tar.lz
cuberite-ef4ec35417a58c4a564c1ed83ca69074cd94d95a.tar.xz
cuberite-ef4ec35417a58c4a564c1ed83ca69074cd94d95a.tar.zst
cuberite-ef4ec35417a58c4a564c1ed83ca69074cd94d95a.zip
Diffstat (limited to '')
-rw-r--r--converter/cNBTData.h198
1 files changed, 0 insertions, 198 deletions
diff --git a/converter/cNBTData.h b/converter/cNBTData.h
deleted file mode 100644
index 7d80aacb9..000000000
--- a/converter/cNBTData.h
+++ /dev/null
@@ -1,198 +0,0 @@
-#pragma once
-
-#include <map>
-#include <list>
-#include <string>
-
-class cNBTList;
-class cNBTData;
-
-class cNBTCompound
-{
-public:
- cNBTCompound( cNBTCompound* a_ParentCompound ) : m_ParentCompound( a_ParentCompound ), m_CurrentList(0) { }
- virtual ~cNBTCompound() {}
-public:
-#ifdef _WIN32
- enum ENUM_TAG : unsigned char
-#else
- enum ENUM_TAG
-#endif
- {
- TAG_End = 0,
- TAG_Byte = 1,
- TAG_Short = 2,
- TAG_Int = 3,
- TAG_Long = 4,
- TAG_Float = 5,
- TAG_Double = 6,
- TAG_ByteArray = 7,
- TAG_String = 8,
- TAG_List = 9,
- TAG_Compound = 10,
- TAG_NumTags // Not a real tag, but contains number of tags
- };
-
- void Clear();
-
- void PutByte( std::string Name, char Value ) { m_Bytes[Name] = Value; }
- void PutShort( std::string Name, short Value ) { m_Shorts[Name] = Value; }
- void PutInteger( std::string Name, int Value ) { m_Integers[Name] = Value; }
- void PutLong( std::string Name, long long Value ) { m_Longs[Name] = Value; }
- void PutDouble( std::string Name, double Value ) { m_Doubles[Name] = Value; }
- void PutFloat( std::string Name, float Value );
- void PutString( std::string Name, std::string Value ) { m_Strings[Name] = Value; }
- void PutByteArray( std::string Name, char* ByteArray ) { m_ByteArrays[Name] = ByteArray; }
- void PutCompound( std::string Name );
- void PutList( std::string Name, ENUM_TAG Type );
-
- char GetByte( std::string Name ) { return m_Bytes[Name]; }
- short GetShort( std::string Name ) { return m_Shorts[Name]; }
- int GetInteger( std::string Name ) { return m_Integers[Name]; }
- long long GetLong( std::string Name ) { return m_Longs[Name]; }
- double GetDouble( std::string Name ) { return m_Doubles[Name]; }
- float GetFloat( std::string Name ) { return m_Floats[Name]; }
- std::string GetString( std::string Name ) { return m_Strings[Name]; }
- char* GetByteArray( std::string Name ) { return m_ByteArrays[Name]; }
- cNBTCompound* GetCompound( std::string Name );
- cNBTList* GetList( std::string Name ) { return m_Lists[Name]; }
-
- cNBTList* GetCurrentList() { return m_CurrentList; }
- cNBTCompound* GetParentCompound() { return m_ParentCompound; }
-
- bool OpenList( std::string a_Name );
- bool CloseList();
-
- void Serialize(std::string & a_Buffer);
-
- void PrintData( int a_Depth, std::string a_Name );
-private:
- void AppendShort( std::string & a_Buffer, short a_Value );
- void AppendInteger( std::string & a_Buffer, int a_Value );
-
- cNBTCompound* m_ParentCompound;
- cNBTList* m_CurrentList;
-
- typedef std::map<std::string, char> ByteMap;
- typedef std::map<std::string, short> ShortMap;
- typedef std::map<std::string, int> IntegerMap;
- typedef std::map<std::string, long long> LongMap;
- typedef std::map<std::string, double> DoubleMap;
- typedef std::map<std::string, float> FloatMap;
- typedef std::map<std::string, std::string> StringMap;
- typedef std::map<std::string, char*> ByteArrayMap;
- typedef std::map<std::string, cNBTCompound*> CompoundMap;
- typedef std::map<std::string, cNBTList*> ListMap;
- ByteMap m_Bytes;
- ShortMap m_Shorts;
- IntegerMap m_Integers;
- LongMap m_Longs;
- DoubleMap m_Doubles;
- FloatMap m_Floats;
- StringMap m_Strings;
- ByteArrayMap m_ByteArrays;
- CompoundMap m_Compounds;
- ListMap m_Lists;
-};
-
-class cNBTList
-{
-public:
- cNBTList( cNBTList* a_ParentList, cNBTCompound::ENUM_TAG a_Type ) : m_ParentList( a_ParentList ), m_Type( a_Type ) {}
- void AddToList( void* a_Item ) { m_List.push_back( a_Item ); }
- void* GetLastElement() { return m_List.back(); }
- cNBTCompound::ENUM_TAG GetType() { return m_Type; }
- cNBTList* GetParentList() { return m_ParentList; }
-
- unsigned int GetSize() { return m_List.size(); }
-
- void Serialize(std::string & a_Buffer);
- void PrintData(int a_Depth, std::string a_Name);
- typedef std::list<void*> VoidList;
- VoidList GetList() { return m_List; }
-
- void Clear();
-private:
- cNBTList* m_ParentList;
- cNBTCompound::ENUM_TAG m_Type;
- VoidList m_List;
-};
-
-class cNBTData : public cNBTCompound
-{
-public:
- cNBTData( char* a_Buffer, unsigned int a_BufferSize );
- virtual ~cNBTData();
-
- void Clear();
-
- void PrintData();
-
- void ParseData();
-
- bool OpenCompound( std::string a_Name );
- bool CloseCompound();
-
- bool OpenList( std::string a_Name );
- bool CloseList();
-
- void PutByte( std::string Name, char Value ) { m_CurrentCompound->PutByte( Name, Value ); }
- void PutShort( std::string Name, short Value ) { m_CurrentCompound->PutShort( Name, Value ); }
- void PutInteger( std::string Name, int Value ) { m_CurrentCompound->PutInteger( Name, Value ); }
- void PutLong( std::string Name, long long Value ) { m_CurrentCompound->PutLong( Name, Value ); }
- void PutDouble( std::string Name, double Value ) { m_CurrentCompound->PutDouble( Name, Value ); }
- void PutFloat( std::string Name, float Value ) { m_CurrentCompound->PutFloat( Name, Value ); }
- void PutString( std::string Name, std::string Value ) { m_CurrentCompound->PutString( Name, Value ); }
- void PutByteArray( std::string Name, char* ByteArray ) { m_CurrentCompound->PutByteArray( Name, ByteArray ); }
- void PutCompound( std::string Name ) { m_CurrentCompound->PutCompound( Name ); }
- void PutList( std::string Name, ENUM_TAG Type ) { m_CurrentCompound->PutList( Name, Type ); }
-
- int GetInteger( std::string Name ) { return m_CurrentCompound->GetInteger(Name); }
- long long GetLong( std::string Name ) { return m_CurrentCompound->GetLong(Name); }
- double GetDouble( std::string Name ) { return m_CurrentCompound->GetDouble(Name); }
- float GetFloat( std::string Name ) { return m_CurrentCompound->GetFloat(Name); }
- std::string GetString( std::string Name ) { return m_CurrentCompound->GetString(Name); }
- char* GetByteArray( std::string Name ) { return m_CurrentCompound->GetByteArray(Name); }
- cNBTCompound* GetCompound( std::string Name ) { return m_CurrentCompound->GetCompound(Name); }
- cNBTList* GetList( std::string Name ) { return m_CurrentCompound->GetList(Name); }
-
- char* GetBuffer() { return m_Buffer; }
- unsigned int GetBufferSize() { return m_BufferSize; }
-
- void Compress();
- bool Decompress();
-
- void Serialize();
-private:
- int m_NumUnnamedElements;
- bool m_bDecompressed;
-
- void ParseTags();
- void ParseCompound( bool a_bNamed );
- void ParseList( bool a_bNamed );
- void ParseString( bool a_bNamed );
- void ParseByte( bool a_bNamed );
- void ParseByteArray( bool a_bNamed );
- void ParseInt( bool a_bNamed );
- void ParseLong( bool a_bNamed );
- void ParseDouble( bool a_bNamed );
- void ParseFloat( bool a_bNamed );
- void ParseShort( bool a_bNamed );
-
- short ReadShort();
- std::string ReadName();
- char ReadByte();
- int ReadInt();
- long long ReadLong();
- double ReadDouble();
- float ReadFloat();
-
- cNBTCompound* m_CurrentCompound;
-
- char* m_Buffer;
- unsigned int m_BufferSize;
- unsigned int m_Index;
- bool tm;
-
- void (cNBTData::*m_ParseFunctions[TAG_NumTags])(bool);
-};