summaryrefslogtreecommitdiffstats
path: root/src/core/Collision.cpp
diff options
context:
space:
mode:
authorSergeanur <s.anureev@yandex.ua>2020-05-05 17:04:43 +0200
committerSergeanur <s.anureev@yandex.ua>2020-05-05 17:04:43 +0200
commitc2b9ddc5b8935dcd8de593c918f50886e0400319 (patch)
tree99f4d7dec983e7ad6f4071cc259c8c0de2eda2e2 /src/core/Collision.cpp
parentRemove Miami stuff (diff)
downloadre3-c2b9ddc5b8935dcd8de593c918f50886e0400319.tar
re3-c2b9ddc5b8935dcd8de593c918f50886e0400319.tar.gz
re3-c2b9ddc5b8935dcd8de593c918f50886e0400319.tar.bz2
re3-c2b9ddc5b8935dcd8de593c918f50886e0400319.tar.lz
re3-c2b9ddc5b8935dcd8de593c918f50886e0400319.tar.xz
re3-c2b9ddc5b8935dcd8de593c918f50886e0400319.tar.zst
re3-c2b9ddc5b8935dcd8de593c918f50886e0400319.zip
Diffstat (limited to 'src/core/Collision.cpp')
-rw-r--r--src/core/Collision.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/core/Collision.cpp b/src/core/Collision.cpp
index 0cdacfdb..f20fee6d 100644
--- a/src/core/Collision.cpp
+++ b/src/core/Collision.cpp
@@ -20,6 +20,10 @@
#include "SurfaceTable.h"
#include "Lines.h"
#include "Collision.h"
+#ifdef MIAMI
+#include "Camera.h"
+#include "ColStore.h"
+#endif
enum Direction
{
@@ -34,22 +38,32 @@ enum Direction
eLevelName CCollision::ms_collisionInMemory;
CLinkList<CColModel*> CCollision::ms_colModelCache;
+//--MIAMI: done
void
CCollision::Init(void)
{
ms_colModelCache.Init(NUMCOLCACHELINKS);
ms_collisionInMemory = LEVEL_NONE;
+#ifdef MIAMI
+ CColStore::Initialise();
+#endif
}
+//--MIAMI: done
void
CCollision::Shutdown(void)
{
ms_colModelCache.Shutdown();
+#ifdef MIAMI
+ CColStore::Shutdown();
+#endif
}
+//--MIAMI: done
void
CCollision::Update(void)
{
+#ifndef MIAMI
CVector playerCoors;
playerCoors = FindPlayerCoors();
eLevelName level = CTheZones::m_CurrLevel;
@@ -83,8 +97,10 @@ CCollision::Update(void)
if(ms_collisionInMemory != CGame::currLevel)
LoadCollisionWhenINeedIt(forceLevelChange);
CStreaming::HaveAllBigBuildingsLoaded(CGame::currLevel);
+#endif
}
+//--MIAMI: unused
eLevelName
GetCollisionInSectorList(CPtrList &list)
{
@@ -101,6 +117,7 @@ GetCollisionInSectorList(CPtrList &list)
return LEVEL_NONE;
}
+//--MIAMI: unused
// Get a level this sector is in based on collision models
eLevelName
GetCollisionInSector(CSector &sect)
@@ -121,9 +138,11 @@ GetCollisionInSector(CSector &sect)
return (eLevelName)level;
}
+//--MIAMI: done
void
CCollision::LoadCollisionWhenINeedIt(bool forceChange)
{
+#ifndef MIAMI
eLevelName level, l;
bool multipleLevels;
CVector playerCoors;
@@ -210,11 +229,14 @@ CCollision::LoadCollisionWhenINeedIt(bool forceChange)
CTimer::Update();
DMAudio.SetEffectsFadeVol(127);
}
+#endif
}
+//--MIAMI: done
void
CCollision::SortOutCollisionAfterLoad(void)
{
+#ifndef MIAMI
if(ms_collisionInMemory == CGame::currLevel)
return;
@@ -226,6 +248,10 @@ CCollision::SortOutCollisionAfterLoad(void)
}
ms_collisionInMemory = CGame::currLevel;
CGame::TidyUpMemory(true, false);
+#else
+ CColStore::LoadCollision(TheCamera.GetPosition());
+ CStreaming::LoadAllRequestedModels(false);
+#endif
}
void
@@ -1974,7 +2000,11 @@ CColModel::CColModel(void)
vertices = nil;
triangles = nil;
trianglePlanes = nil;
+#ifndef MIAMI
level = CGame::currLevel;
+#else
+ level = 0; // generic col slot
+#endif
ownsCollisionVolumes = true;
}