From 6f883cba2d9e5089c50be3a377f4308ed3541908 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Thu, 14 Mar 2013 21:56:01 +0000 Subject: Small performance improvements in fluid simulator. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1276 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Simulator/DelayedFluidSimulator.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/Simulator/DelayedFluidSimulator.cpp') diff --git a/source/Simulator/DelayedFluidSimulator.cpp b/source/Simulator/DelayedFluidSimulator.cpp index f6b3e5547..25179d55a 100644 --- a/source/Simulator/DelayedFluidSimulator.cpp +++ b/source/Simulator/DelayedFluidSimulator.cpp @@ -76,18 +76,19 @@ void cDelayedFluidSimulator::AddBlock(int a_BlockX, int a_BlockY, int a_BlockZ, void * ChunkDataRaw = (m_FluidBlock == E_BLOCK_WATER) ? a_Chunk->GetWaterSimulatorData() : a_Chunk->GetLavaSimulatorData(); cDelayedFluidSimulatorChunkData * ChunkData = (cDelayedFluidSimulatorChunkData *)ChunkDataRaw; cCoordWithIntVector & Blocks = ChunkData->m_Slots[m_AddSlotNum]; - + // Check for duplicates: + int Index = cChunkDef::MakeIndexNoCheck(RelX, a_BlockY, RelZ); for (cCoordWithIntVector::iterator itr = Blocks.begin(), end = Blocks.end(); itr != end; ++itr) { - if ((itr->x == RelX) && (itr->y == a_BlockY) && (itr->z == RelZ)) + if ((itr->Data == Index)) { return; } } ++m_TotalBlocks; - Blocks.push_back(cCoordWithInt(RelX, a_BlockY, RelZ)); + Blocks.push_back(cCoordWithInt(RelX, a_BlockY, RelZ, Index)); } -- cgit v1.2.3