From 04499bfbb69f4be525479cd1b8bf2c6d88c16fd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?eray=20or=C3=A7unus?= Date: Sun, 22 Dec 2019 18:28:16 +0300 Subject: CEmergencyPed done --- src/peds/EmergencyPed.h | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) (limited to 'src/peds/EmergencyPed.h') diff --git a/src/peds/EmergencyPed.h b/src/peds/EmergencyPed.h index f55fa4e2..5693e908 100644 --- a/src/peds/EmergencyPed.h +++ b/src/peds/EmergencyPed.h @@ -1,20 +1,40 @@ #pragma once -#include "Fire.h" #include "Ped.h" +class CAccident; +class CFire; + +enum EmergencyPedState +{ + EMERGENCY_PED_READY = 0x0, + EMERGENCY_PED_DETERMINE_NEXT_STATE = 0x1, // you can set that anytime you want + EMERGENCY_PED_START_CPR = 0x2, + EMERGENCY_PED_FLAG_4 = 0x4, // unused + EMERGENCY_PED_FLAG_8 = 0x8, // unused + EMERGENCY_PED_FACE_TO_PATIENT = 0x10, // for CPR + EMERGENCY_PED_PERFORM_CPR = 0x20, + EMERGENCY_PED_STOP_CPR = 0x40, + EMERGENCY_PED_STAND_STILL = 0x80, // waiting colleagues for medics, "extinguishing" fire for firemen + EMERGENCY_PED_STOP = 0x100, +}; + class CEmergencyPed : public CPed { public: // 0x53C - CPed* m_pRevivedPed; - int32 m_nEmergencyPedState; // looks like flags - void* m_pAttendedAccident; //TODO: CAccident* - CFire* m_pAttendedFire; - int8 field_1356; - int32 field_1360; + CPed *m_pRevivedPed; + EmergencyPedState m_nEmergencyPedState; + CAccident *m_pAttendedAccident; + CFire *m_pAttendedFire; + bool m_bStartedToCPR; // set but unused(?) + int32 field_1360; // also something for medics, unused(?) CEmergencyPed(uint32); + ~CEmergencyPed() { } + bool InRange(CPed*); void ProcessControl(void); + void FiremanAI(void); + void MedicAI(void); }; static_assert(sizeof(CEmergencyPed) == 0x554, "CEmergencyPed: error"); -- cgit v1.2.3