summaryrefslogtreecommitdiffstats
path: root/src/core/ZoneCull.cpp
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2020-08-21 13:28:33 +0200
committeraap <aap@papnet.eu>2020-08-21 13:28:33 +0200
commit13c34b0863ddf6b4d55f5ff373c10252c4321f2b (patch)
treee0d0bddcac9da46e241956b48ebd7e5ee022d669 /src/core/ZoneCull.cpp
parentfix streaming bug (diff)
downloadre3-13c34b0863ddf6b4d55f5ff373c10252c4321f2b.tar
re3-13c34b0863ddf6b4d55f5ff373c10252c4321f2b.tar.gz
re3-13c34b0863ddf6b4d55f5ff373c10252c4321f2b.tar.bz2
re3-13c34b0863ddf6b4d55f5ff373c10252c4321f2b.tar.lz
re3-13c34b0863ddf6b4d55f5ff373c10252c4321f2b.tar.xz
re3-13c34b0863ddf6b4d55f5ff373c10252c4321f2b.tar.zst
re3-13c34b0863ddf6b4d55f5ff373c10252c4321f2b.zip
Diffstat (limited to 'src/core/ZoneCull.cpp')
-rw-r--r--src/core/ZoneCull.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/core/ZoneCull.cpp b/src/core/ZoneCull.cpp
index 729cc35d..69c7a796 100644
--- a/src/core/ZoneCull.cpp
+++ b/src/core/ZoneCull.cpp
@@ -11,6 +11,8 @@
#include "ZoneCull.h"
#include "Zones.h"
+//--MIAMI: done
+
int32 CCullZones::NumAttributeZones;
CAttributeZone CCullZones::aAttributeZones[NUMATTRIBZONES];
@@ -18,6 +20,7 @@ int32 CCullZones::CurrentWantedLevelDrop_Player;
int32 CCullZones::CurrentFlags_Camera;
int32 CCullZones::CurrentFlags_Player;
bool CCullZones::bCurrentSubwayIsInvisible;
+bool CCullZones::bAtBeachForAudio;
void
CCullZones::Init(void)
@@ -37,6 +40,7 @@ CCullZones::Update(void)
switch(CTimer::GetFrameCounter() & 7){
case 0:
case 4:
+ UpdateAtBeachForAudio();
break;
case 2:
@@ -57,6 +61,27 @@ CCullZones::Update(void)
}
}
+// TODO? put somewhere else?
+bool
+IsPointWithinArbitraryArea(float px, float py, float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4)
+{
+ if((px-x1)*(x2-x1) - (py-y1)*(y2-y1) < 0.0f) return false;
+ if((px-x2)*(x3-x2) - (py-y2)*(y3-y2) < 0.0f) return false;
+ if((px-x3)*(x4-x3) - (py-y3)*(y4-y3) < 0.0f) return false;
+ if((px-x4)*(x1-x4) - (py-y4)*(y1-y4) < 0.0f) return false;
+ return true;
+}
+
+void
+CCullZones::UpdateAtBeachForAudio(void)
+{
+ bAtBeachForAudio = IsPointWithinArbitraryArea(TheCamera.GetPosition().x, TheCamera.GetPosition().y,
+ 400.0f, -1644.4f,
+ 751.9f, 1267.8f,
+ 971.9f, 1216.2f,
+ 840.0f, -1744.0f);
+}
+
void
CCullZones::ForceCullZoneCoors(CVector coors)
{