summaryrefslogtreecommitdiffstats
path: root/src/control/CarGen.h
diff options
context:
space:
mode:
authorNikolay Korolev <nickvnuk@gmail.com>2019-07-27 20:28:18 +0200
committerNikolay Korolev <nickvnuk@gmail.com>2019-07-27 20:28:18 +0200
commit345b8553a7455926d523b90926edb0eacf88a13a (patch)
tree3ba80e1ba6fece816603e9f683f012842347186b /src/control/CarGen.h
parentfixed bridge (diff)
downloadre3-345b8553a7455926d523b90926edb0eacf88a13a.tar
re3-345b8553a7455926d523b90926edb0eacf88a13a.tar.gz
re3-345b8553a7455926d523b90926edb0eacf88a13a.tar.bz2
re3-345b8553a7455926d523b90926edb0eacf88a13a.tar.lz
re3-345b8553a7455926d523b90926edb0eacf88a13a.tar.xz
re3-345b8553a7455926d523b90926edb0eacf88a13a.tar.zst
re3-345b8553a7455926d523b90926edb0eacf88a13a.zip
Diffstat (limited to '')
-rw-r--r--src/control/CarGen.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/control/CarGen.h b/src/control/CarGen.h
new file mode 100644
index 00000000..c1ca304c
--- /dev/null
+++ b/src/control/CarGen.h
@@ -0,0 +1,56 @@
+#pragma once
+#include "common.h"
+#include "config.h"
+
+enum {
+ CARGEN_MAXACTUALLIMIT = 100
+};
+
+class CCarGenerator
+{
+ int32 m_nModelIndex;
+ CVector m_vecPos;
+ float m_fAngle;
+ int16 m_nColor1;
+ int16 m_nColor2;
+ uint8 m_bForceSpawn;
+ uint8 m_nAlarm;
+ uint8 m_nDoorlock;
+ int16 m_nMinDelay;
+ int16 m_nMaxDelay;
+ uint32 m_nTimer;
+ int32 m_nVehicleHandle;
+ uint16 m_nUsesRemaining;
+ bool m_bIsBlocking;
+ CVector m_vecInf;
+ CVector m_vecSup;
+ float m_fSize;
+public:
+ void SwitchOff();
+ void SwitchOn();
+ uint32 CalcNextGen();
+ void DoInternalProcessing();
+ void Process();
+ void Setup(float x, float y, float z, float angle, int32 mi, int16 color1, int16 color2, uint8 force, uint8 alarm, uint8 lock, uint16 min_delay, uint16 max_delay);
+ bool CheckForBlockage();
+ bool CheckIfWithinRangeOfAnyPlayer();
+ void Save(uint8*);
+ void Load(uint8*);
+ void SetUsesRemaining(uint16 uses) { m_nUsesRemaining = uses; }
+};
+
+class CTheCarGenerators
+{
+public:
+ static uint8 &ProcessCounter;
+ static uint32 &NumOfCarGenerators;
+ static CCarGenerator (&CarGeneratorArray)[NUM_CARGENS];
+ static uint8 &GenerateEvenIfPlayerIsCloseCounter;
+ static uint32 &CurrentActiveCount;
+
+ static void Process();
+ static int32 CreateCarGenerator(float x, float y, float z, float angle, int32 mi, int16 color1, int16 color2, uint8 force, uint8 alarm, uint8 lock, uint16 min_delay, uint16 max_delay);
+ static void Init();
+ static void SaveAllCarGenerators(uint8 *, uint32 *);
+ static void LoadAllCarGenerators(uint8 *, uint32);
+};