summaryrefslogtreecommitdiffstats
path: root/src/Simulator/IncrementalRedstoneSimulator.cpp
diff options
context:
space:
mode:
authormadmaxoft <github@xoft.cz>2014-07-17 10:06:13 +0200
committermadmaxoft <github@xoft.cz>2014-07-17 10:06:13 +0200
commite66b81b3951680511f2bfffd12c8f96dbbb5865a (patch)
tree5a5bcdad7cc8b70b65bc60a1a3d8f6eb7a85501a /src/Simulator/IncrementalRedstoneSimulator.cpp
parentMerge remote-tracking branch 'origin/master' into potions (diff)
parentAnother fix for excessive food drain (diff)
downloadcuberite-e66b81b3951680511f2bfffd12c8f96dbbb5865a.tar
cuberite-e66b81b3951680511f2bfffd12c8f96dbbb5865a.tar.gz
cuberite-e66b81b3951680511f2bfffd12c8f96dbbb5865a.tar.bz2
cuberite-e66b81b3951680511f2bfffd12c8f96dbbb5865a.tar.lz
cuberite-e66b81b3951680511f2bfffd12c8f96dbbb5865a.tar.xz
cuberite-e66b81b3951680511f2bfffd12c8f96dbbb5865a.tar.zst
cuberite-e66b81b3951680511f2bfffd12c8f96dbbb5865a.zip
Diffstat (limited to 'src/Simulator/IncrementalRedstoneSimulator.cpp')
-rw-r--r--src/Simulator/IncrementalRedstoneSimulator.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/Simulator/IncrementalRedstoneSimulator.cpp b/src/Simulator/IncrementalRedstoneSimulator.cpp
index fb5b01e17..55c5cbd09 100644
--- a/src/Simulator/IncrementalRedstoneSimulator.cpp
+++ b/src/Simulator/IncrementalRedstoneSimulator.cpp
@@ -2101,6 +2101,13 @@ bool cIncrementalRedstoneSimulator::QueueRepeaterPowerChange(int a_RelBlockX, in
void cIncrementalRedstoneSimulator::SetSourceUnpowered(int a_SourceX, int a_SourceY, int a_SourceZ, cChunk * a_Chunk, bool a_IsFirstCall)
{
+ if (!a_IsFirstCall) // The neighbouring chunks passed when this parameter is false may be invalid
+ {
+ if ((a_Chunk == NULL) || !a_Chunk->IsValid())
+ {
+ return;
+ }
+ }
// TODO: on C++11 support, change both of these to llama functions pased to a std::remove_if
for (PoweredBlocksList::iterator itr = a_Chunk->GetRedstoneSimulatorPoweredBlocksList()->begin(); itr != a_Chunk->GetRedstoneSimulatorPoweredBlocksList()->end();)