diff options
Diffstat (limited to 'src/ChunkDef.h')
-rw-r--r-- | src/ChunkDef.h | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/src/ChunkDef.h b/src/ChunkDef.h index d1288994c..1c4aa6aca 100644 --- a/src/ChunkDef.h +++ b/src/ChunkDef.h @@ -92,7 +92,6 @@ public: /// Converts absolute block coords into relative (chunk + block) coords: inline static void AbsoluteToRelative(/* in-out */ int & a_X, int & a_Y, int & a_Z, /* out */ int & a_ChunkX, int & a_ChunkZ ) { - UNUSED(a_Y); BlockToChunk(a_X, a_Z, a_ChunkX, a_ChunkZ); a_X = a_X - a_ChunkX * Width; @@ -498,7 +497,7 @@ public: -/// Generic template that can store any kind of data together with a triplet of 3 coords: +/** Generic template that can store any kind of data together with a triplet of 3 coords*/ template <typename X> class cCoordWithData { public: @@ -518,12 +517,40 @@ public: } } ; -// Illegal in C++03: typedef std::list< cCoordWithData<X> > cCoordWithDataList<X>; typedef cCoordWithData<int> cCoordWithInt; typedef cCoordWithData<BLOCKTYPE> cCoordWithBlock; + typedef std::list<cCoordWithInt> cCoordWithIntList; typedef std::vector<cCoordWithInt> cCoordWithIntVector; -typedef std::vector<cCoordWithBlock> cCoordWithBlockVector; + + + + + +/** Generic template that can store two types of any kind of data together with a triplet of 3 coords */ +template <typename X, typename Z> class cCoordWithDoubleData +{ +public: + int x; + int y; + int z; + X Data; + Z DataTwo; + + cCoordWithDoubleData(int a_X, int a_Y, int a_Z) : + x(a_X), y(a_Y), z(a_Z) + { + } + + cCoordWithDoubleData(int a_X, int a_Y, int a_Z, const X & a_Data, const Z & a_DataTwo) : + x(a_X), y(a_Y), z(a_Z), Data(a_Data), DataTwo(a_DataTwo) + { + } +}; + +typedef cCoordWithDoubleData <BLOCKTYPE, bool> cCoordWithBlockAndBool; + +typedef std::vector<cCoordWithBlockAndBool> cCoordWithBlockAndBoolVector; |