summaryrefslogtreecommitdiffstats
path: root/src/core/World.cpp
diff options
context:
space:
mode:
authorNikolay Korolev <nickvnuk@gmail.com>2020-12-06 17:30:51 +0100
committerNikolay Korolev <nickvnuk@gmail.com>2020-12-06 17:30:51 +0100
commitfe918d41c249205754a48010a9d69cfd25b406ff (patch)
tree210d0637ff37875183483aae2dcedbf146b7bf55 /src/core/World.cpp
parentlil fix (diff)
downloadre3-fe918d41c249205754a48010a9d69cfd25b406ff.tar
re3-fe918d41c249205754a48010a9d69cfd25b406ff.tar.gz
re3-fe918d41c249205754a48010a9d69cfd25b406ff.tar.bz2
re3-fe918d41c249205754a48010a9d69cfd25b406ff.tar.lz
re3-fe918d41c249205754a48010a9d69cfd25b406ff.tar.xz
re3-fe918d41c249205754a48010a9d69cfd25b406ff.tar.zst
re3-fe918d41c249205754a48010a9d69cfd25b406ff.zip
Diffstat (limited to 'src/core/World.cpp')
-rw-r--r--src/core/World.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/core/World.cpp b/src/core/World.cpp
index bc104fe9..62f58f7f 100644
--- a/src/core/World.cpp
+++ b/src/core/World.cpp
@@ -1164,8 +1164,8 @@ CWorld::FindObjectsIntersectingCube(const CVector &vecStartPos, const CVector &v
const int32 nEndX = Min(GetSectorIndexX(vecStartPos.x), NUMSECTORS_X - 1);
const int32 nEndY = Min(GetSectorIndexY(vecStartPos.y), NUMSECTORS_Y - 1);
#else
- const int32 nEndX = Min(GetSectorIndexX(vecSectorPos.x), NUMSECTORS_X);
- const int32 nEndY = Min(GetSectorIndexY(vecSectorPos.y), NUMSECTORS_Y);
+ const int32 nEndX = Min(GetSectorIndexX(vecStartPos.x), NUMSECTORS_X);
+ const int32 nEndY = Min(GetSectorIndexY(vecStartPos.y), NUMSECTORS_Y);
#endif
for(int32 y = nStartY; y <= nEndY; y++) {
for(int32 x = nStartX; x <= nEndX; x++) {
@@ -1781,10 +1781,12 @@ CWorld::ShutDown(void)
CWorld::Remove(pEntity);
delete pEntity;
}
+#ifndef FIX_BUGS
pSector->m_lists[ENTITYLIST_BUILDINGS].Flush();
pSector->m_lists[ENTITYLIST_BUILDINGS_OVERLAP].Flush();
pSector->m_lists[ENTITYLIST_DUMMIES].Flush();
pSector->m_lists[ENTITYLIST_DUMMIES_OVERLAP].Flush();
+#endif
}
for(int32 i = 0; i < 4; i++) {
for(CPtrNode *pNode = GetBigBuildingList((eLevelName)i).first; pNode; pNode = pNode->next) {
@@ -1796,6 +1798,12 @@ CWorld::ShutDown(void)
}
for(int i = 0; i < NUMSECTORS_X * NUMSECTORS_Y; i++) {
CSector *pSector = GetSector(i % NUMSECTORS_X, i / NUMSECTORS_Y);
+#ifdef FIX_BUGS
+ pSector->m_lists[ENTITYLIST_BUILDINGS].Flush();
+ pSector->m_lists[ENTITYLIST_BUILDINGS_OVERLAP].Flush();
+ pSector->m_lists[ENTITYLIST_DUMMIES].Flush();
+ pSector->m_lists[ENTITYLIST_DUMMIES_OVERLAP].Flush();
+#endif
if(pSector->m_lists[ENTITYLIST_BUILDINGS].first) {
sprintf(gString, "Building list %d,%d not empty\n", i % NUMSECTORS_X, i / NUMSECTORS_Y);
pSector->m_lists[ENTITYLIST_BUILDINGS].Flush();