1
0

Added moar comments

This commit is contained in:
Tiger Wang 2015-06-07 12:03:28 +01:00
parent f44d123ba8
commit 061866616d
2 changed files with 13 additions and 13 deletions

View File

@ -90,8 +90,9 @@ void cIncrementalRedstoneSimulator::AddBlock(const Vector3i & a_RelBlockPosition
// DO NOT touch our chunk's data structure if we are being called with coordinates from another chunk - this one caused me massive grief :P // DO NOT touch our chunk's data structure if we are being called with coordinates from another chunk - this one caused me massive grief :P
return; return;
} }
auto RedstoneSimulatorData = static_cast<cIncrementalRedstoneSimulatorChunkData *>(a_OriginalChunk->GetRedstoneSimulatorData());
auto & SimulatedPlayerToggleableBlocks = static_cast<cIncrementalRedstoneSimulatorChunkData *>(a_OriginalChunk->GetRedstoneSimulatorData())->m_SimulatedPlayerToggleableBlocks; auto & SimulatedPlayerToggleableBlocks = RedstoneSimulatorData->m_SimulatedPlayerToggleableBlocks;
if (DoesIgnorePlayerToggle(Block)) if (DoesIgnorePlayerToggle(Block))
{ {
// Initialise the toggleable blocks list so that trapdoors etc. aren't reset on restart (#1887) // Initialise the toggleable blocks list so that trapdoors etc. aren't reset on restart (#1887)
@ -107,10 +108,10 @@ void cIncrementalRedstoneSimulator::AddBlock(const Vector3i & a_RelBlockPosition
if ((Block != E_BLOCK_REDSTONE_REPEATER_ON) && (Block != E_BLOCK_REDSTONE_REPEATER_OFF)) if ((Block != E_BLOCK_REDSTONE_REPEATER_ON) && (Block != E_BLOCK_REDSTONE_REPEATER_OFF))
{ {
static_cast<cIncrementalRedstoneSimulatorChunkData *>(a_OriginalChunk->GetRedstoneSimulatorData())->m_RepeatersDelayList.erase(a_RelBlockPosition); RedstoneSimulatorData->m_RepeatersDelayList.erase(a_RelBlockPosition);
} }
auto & RedstoneSimulatorChunkData = static_cast<cIncrementalRedstoneSimulatorChunkData *>(a_OriginalChunk->GetRedstoneSimulatorData())->m_ChunkData; auto & RedstoneSimulatorChunkData = RedstoneSimulatorData->m_ChunkData;
auto Iterator = RedstoneSimulatorChunkData.find(a_RelBlockPosition); auto Iterator = RedstoneSimulatorChunkData.find(a_RelBlockPosition);
if (!IsAllowedBlock(Block)) if (!IsAllowedBlock(Block))
{ {
@ -124,7 +125,7 @@ void cIncrementalRedstoneSimulator::AddBlock(const Vector3i & a_RelBlockPosition
{ {
if (Iterator != RedstoneSimulatorChunkData.end()) if (Iterator != RedstoneSimulatorChunkData.end())
{ {
Iterator->second.second = false; Iterator->second.second = false; // De-schedule removal from list
Iterator->second.first = Block; // Update block information Iterator->second.first = Block; // Update block information
return; return;
} }
@ -171,11 +172,12 @@ void cIncrementalRedstoneSimulator::SimulateChunk(std::chrono::milliseconds a_Dt
{ {
if (dataitr->second.second) if (dataitr->second.second)
{ {
// Removal was scheduled - do so
dataitr = m_RedstoneSimulatorChunkData->m_ChunkData.erase(dataitr); dataitr = m_RedstoneSimulatorChunkData->m_ChunkData.erase(dataitr);
continue; continue;
} }
switch (dataitr->second.first) switch (dataitr->second.first) // Call the appropriate simulator for the entry's block type
{ {
case E_BLOCK_DAYLIGHT_SENSOR: HandleDaylightSensor(dataitr->first.x, dataitr->first.y, dataitr->first.z); break; case E_BLOCK_DAYLIGHT_SENSOR: HandleDaylightSensor(dataitr->first.x, dataitr->first.y, dataitr->first.z); break;
case E_BLOCK_TRIPWIRE: HandleTripwire(dataitr->first.x, dataitr->first.y, dataitr->first.z); break; case E_BLOCK_TRIPWIRE: HandleTripwire(dataitr->first.x, dataitr->first.y, dataitr->first.z); break;
@ -737,11 +739,13 @@ void cIncrementalRedstoneSimulator::HandleRedstoneComparator(int a_RelBlockX, in
auto RearPower = std::max(CCB.m_SignalStrength, IsWirePowered(AdjustRelativeCoords(cBlockComparatorHandler::GetRearCoordinate(a_RelBlockX, a_RelBlockY, a_RelBlockZ, Meta & 0x3)), m_Chunk)); auto RearPower = std::max(CCB.m_SignalStrength, IsWirePowered(AdjustRelativeCoords(cBlockComparatorHandler::GetRearCoordinate(a_RelBlockX, a_RelBlockY, a_RelBlockZ, Meta & 0x3)), m_Chunk));
if ((Meta & 0x4) == 0x4) if ((Meta & 0x4) == 0x4)
{ // Subtraction mode {
// Subtraction mode
Power = std::max(static_cast<unsigned char>(RearPower - HighestSidePower), std::numeric_limits<unsigned char>::min()); Power = std::max(static_cast<unsigned char>(RearPower - HighestSidePower), std::numeric_limits<unsigned char>::min());
} }
else else
{ // Comparison mode {
// Comparison mode
Power = (std::max(HighestSidePower, RearPower) == HighestSidePower) ? 0 : RearPower; Power = (std::max(HighestSidePower, RearPower) == HighestSidePower) ? 0 : RearPower;
} }

View File

@ -411,11 +411,7 @@ private:
inline static Vector3i AdjustRelativeCoords(const Vector3i & a_RelPosition) inline static Vector3i AdjustRelativeCoords(const Vector3i & a_RelPosition)
{ {
return { return { (a_RelPosition.x % cChunkDef::Width + cChunkDef::Width) % cChunkDef::Width, a_RelPosition.y, (a_RelPosition.z % cChunkDef::Width + cChunkDef::Width) % cChunkDef::Width };
(a_RelPosition.x % cChunkDef::Width + cChunkDef::Width) % cChunkDef::Width,
a_RelPosition.y,
(a_RelPosition.z % cChunkDef::Width + cChunkDef::Width) % cChunkDef::Width
};
} }
}; };