summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@outlook.com>2016-02-21 01:32:38 +0100
committerTiger Wang <ziwei.tiger@outlook.com>2016-02-21 01:32:38 +0100
commit4909e271faa4dc182f786cb235f7f5c5c53f2a50 (patch)
tree0f424d5643a6e2b927fdee1083f655aea90ae8cb
parentMerge pull request #3032 from cuberite/3030-fix (diff)
parentAdd check if entity is in chunk before changing tick status (diff)
downloadcuberite-4909e271faa4dc182f786cb235f7f5c5c53f2a50.tar
cuberite-4909e271faa4dc182f786cb235f7f5c5c53f2a50.tar.gz
cuberite-4909e271faa4dc182f786cb235f7f5c5c53f2a50.tar.bz2
cuberite-4909e271faa4dc182f786cb235f7f5c5c53f2a50.tar.lz
cuberite-4909e271faa4dc182f786cb235f7f5c5c53f2a50.tar.xz
cuberite-4909e271faa4dc182f786cb235f7f5c5c53f2a50.tar.zst
cuberite-4909e271faa4dc182f786cb235f7f5c5c53f2a50.zip
-rw-r--r--src/World.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/World.cpp b/src/World.cpp
index d8386119d..dcc36f5f3 100644
--- a/src/World.cpp
+++ b/src/World.cpp
@@ -1019,7 +1019,10 @@ void cWorld::Tick(std::chrono::milliseconds a_Dt, std::chrono::milliseconds a_La
(*itr)->SetWorld(this);
m_ChunkMap->AddEntity(*itr);
ASSERT(!(*itr)->IsTicking());
- (*itr)->SetIsTicking(true);
+ if (m_ChunkMap->HasEntity((*itr)->GetUniqueID()))
+ {
+ (*itr)->SetIsTicking(true);
+ }
}
m_EntitiesToAdd.clear();
}
@@ -3805,7 +3808,10 @@ void cWorld::AddQueuedPlayers(void)
// Add to chunkmap, if not already there (Spawn vs MoveToWorld):
m_ChunkMap->AddEntityIfNotPresent(*itr);
ASSERT(!(*itr)->IsTicking());
- (*itr)->SetIsTicking(true);
+ if (m_ChunkMap->HasEntity((*itr)->GetUniqueID()))
+ {
+ (*itr)->SetIsTicking(true);
+ }
} // for itr - PlayersToAdd[]
} // Lock(m_CSPlayers)