Split cCoord template into one and two data types
This commit is contained in:
parent
6f660b379e
commit
b0784d1931
@ -498,15 +498,14 @@ public:
|
||||
|
||||
|
||||
|
||||
/// Generic template that can store any kind of data together with a triplet of 3 coords:
|
||||
template <typename X, typename Y> class cCoordWithData
|
||||
/** Generic template that can store any kind of data together with a triplet of 3 coords*/
|
||||
template <typename X> class cCoordWithData
|
||||
{
|
||||
public:
|
||||
int x;
|
||||
int y;
|
||||
int z;
|
||||
X Data;
|
||||
Y SecondData;
|
||||
|
||||
cCoordWithData(int a_X, int a_Y, int a_Z) :
|
||||
x(a_X), y(a_Y), z(a_Z)
|
||||
@ -517,18 +516,41 @@ public:
|
||||
x(a_X), y(a_Y), z(a_Z), Data(a_Data)
|
||||
{
|
||||
}
|
||||
|
||||
cCoordWithData(int a_X, int a_Y, int a_Z, const X & a_Data, const Y & a_SecondData) :
|
||||
x(a_X), y(a_Y), z(a_Z), Data(a_Data), SecondData(a_SecondData)
|
||||
{
|
||||
}
|
||||
} ;
|
||||
|
||||
typedef cCoordWithData<int, void *> cCoordWithInt;
|
||||
typedef cCoordWithData<BLOCKTYPE, bool> cCoordWithBlockAndBool;
|
||||
typedef cCoordWithData<int> cCoordWithInt;
|
||||
typedef cCoordWithData<BLOCKTYPE> cCoordWithBlock;
|
||||
|
||||
typedef std::list<cCoordWithInt> cCoordWithIntList;
|
||||
typedef std::vector<cCoordWithInt> cCoordWithIntVector;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/** 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;
|
||||
|
||||
|
||||
|
@ -169,7 +169,7 @@ void cRedstoneSimulator::AddBlock(int a_BlockX, int a_BlockY, int a_BlockZ, cChu
|
||||
{
|
||||
if (!IsAllowedBlock(Block))
|
||||
{
|
||||
itr->SecondData = true; // The new blocktype is not redstone; it must be queued to be removed from this list
|
||||
itr->DataTwo = true; // The new blocktype is not redstone; it must be queued to be removed from this list
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -209,7 +209,7 @@ void cRedstoneSimulator::SimulateChunk(float a_Dt, int a_ChunkX, int a_ChunkZ, c
|
||||
|
||||
for (cRedstoneSimulatorChunkData::iterator dataitr = ChunkData.begin(); dataitr != ChunkData.end();)
|
||||
{
|
||||
if (dataitr->SecondData)
|
||||
if (dataitr->DataTwo)
|
||||
{
|
||||
dataitr = ChunkData.erase(dataitr);
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user