summaryrefslogtreecommitdiffstats
path: root/src/core/EventList.h
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2019-07-12 18:01:22 +0200
committeraap <aap@papnet.eu>2019-07-12 18:01:22 +0200
commit60711154baf5477d6f4c12add1ecdd0a24c0c116 (patch)
tree460199051422d03a6a70a1e57f9c8d2d588c85b6 /src/core/EventList.h
parentCAutomobile::ProcessControlInputs (diff)
downloadre3-60711154baf5477d6f4c12add1ecdd0a24c0c116.tar
re3-60711154baf5477d6f4c12add1ecdd0a24c0c116.tar.gz
re3-60711154baf5477d6f4c12add1ecdd0a24c0c116.tar.bz2
re3-60711154baf5477d6f4c12add1ecdd0a24c0c116.tar.lz
re3-60711154baf5477d6f4c12add1ecdd0a24c0c116.tar.xz
re3-60711154baf5477d6f4c12add1ecdd0a24c0c116.tar.zst
re3-60711154baf5477d6f4c12add1ecdd0a24c0c116.zip
Diffstat (limited to 'src/core/EventList.h')
-rw-r--r--src/core/EventList.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/core/EventList.h b/src/core/EventList.h
new file mode 100644
index 00000000..d0fc0847
--- /dev/null
+++ b/src/core/EventList.h
@@ -0,0 +1,65 @@
+#pragma once
+
+class CEntity;
+class CPed;
+
+enum eEventType
+{
+ EVENT_NULL,
+ EVENT_ASSAULT,
+ EVENT_RUN_REDLIGHT,
+ EVENT_ASSAULT_POLICE,
+ EVENT_GUNSHOT,
+ EVENT_INJURED_PED,
+ EVENT_DEAD_PED,
+ EVENT_FIRE,
+ EVENT_STEAL_CAR,
+ EVENT_HIT_AND_RUN,
+ EVENT_HIT_AND_RUN_COP,
+ EVENT_SHOOT_PED,
+ EVENT_SHOOT_COP,
+ EVENT_EXPLOSION,
+ EVENT_PED_SET_ON_FIRE,
+ EVENT_COP_SET_ON_FIRE,
+ EVENT_CAR_SET_ON_FIRE,
+ EVENT_ASSAULT_NASTYWEAPON,
+ EVENT_ASSAULT_NASTYWEAPON_POLICE,
+ EVENT_ICECREAM,
+ EVENT_ATM,
+ EVENT_SHOPSTALL,
+ EVENT_SHOPWINDOW,
+ EVENT_LAST_EVENT
+};
+
+enum eEventEntity
+{
+ EVENT_ENTITY_NONE,
+ EVENT_ENTITY_PED,
+ EVENT_ENTITY_VEHICLE,
+ EVENT_ENTITY_OBJECT
+};
+
+struct CEvent
+{
+ eEventType type;
+ eEventEntity entityType;
+ int32 entityRef;
+ CPed *criminal;
+ CVector posn;
+ uint32 timeout;
+ int32 state;
+};
+
+class CEventList
+{
+ static int32 ms_nFirstFreeSlotIndex;
+public:
+ static void Initialise(void);
+ static void Update(void);
+ static void RegisterEvent(eEventType type, eEventEntity entityType, CEntity *ent, CPed *criminal, int32 timeout);
+ static void RegisterEvent(eEventType type, CVector posn, int32 timeout);
+ static bool GetEvent(eEventType type, int32 *event);
+ static void ClearEvent(int32 event);
+ static bool FindClosestEvent(eEventType type, CVector posn, int32 *event);
+ static void ReportCrimeForEvent(eEventType type, int32, bool);
+};