Re3/src/core/EventList.h

66 lines
1.4 KiB
C
Raw Normal View History

2019-07-12 12:01:22 -04:00
#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,
2019-08-22 18:44:38 -04:00
EVENT_ASSAULT_NASTYWEAPON, // not sure
2019-07-12 12:01:22 -04:00
EVENT_ICECREAM,
EVENT_ATM,
2019-08-22 18:44:38 -04:00
EVENT_SHOPSTALL, // used on graffitis
2019-07-12 12:01:22 -04:00
EVENT_SHOPWINDOW,
2019-08-22 18:44:38 -04:00
EVENT_LAST_EVENT // may be above one
2019-07-12 12:01:22 -04:00
};
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);
};
2019-07-15 08:11:40 -04:00
2020-03-25 10:13:06 -04:00
extern CEvent gaEvent[NUMEVENTS];