-
Notifications
You must be signed in to change notification settings - Fork 42
/
MissionClass.h
119 lines (98 loc) · 3.04 KB
/
MissionClass.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/*
Base class for all game objects with missions (yeah... not many).
*/
#pragma once
#include <ObjectClass.h>
class CCINIClass;
class MissionControlClass
{
public:
static MissionControlClass* Array()
{ return reinterpret_cast<MissionControlClass*>(0xA8E3A8); }
static const char** Names()
{ return reinterpret_cast<const char**>(0x816CAC); }
static MissionControlClass* __fastcall Find(const char* pName)
{ JMP_STD(0x5B3910); }
static Mission __fastcall FindIndex(const char* pName)
{ JMP_STD(0x5B3910); }
static const char* __fastcall FindName(const Mission& index)
{ JMP_STD(0x5B3740); }
MissionControlClass()
{ JMP_THIS(0x5B3700); }
const char* GetName()
{ JMP_THIS(0x5B3740); }
void LoadFromINI(CCINIClass* pINI)
{ JMP_THIS(0x5B3760); }
//Properties
int ArrayIndex;
bool NoThreat;
bool Zombie;
bool Recruitable;
bool Paralyzed;
bool Retaliate;
bool Scatter;
double Rate; //default 0.016
double AARate; //default 0.016
};
class NOVTABLE MissionClass : public ObjectClass
{
public:
//Destructor
virtual ~MissionClass() { /* ~ObjectClass() */ }
//MissionClass
virtual bool QueueMission(Mission mission, bool start_mission) R0;
virtual bool NextMission() R0;
virtual void ForceMission(Mission mission) RX;
virtual void vt_entry_1F4(Mission mission) RX;
virtual bool Mission_Revert() R0;
virtual bool vt_entry_1FC() const R0;
virtual bool vt_entry_200() const R0;
virtual int Mission_Sleep() R0;
virtual int Mission_Harmless() R0;
virtual int Mission_Ambush() R0;
virtual int Mission_Attack() R0;
virtual int Mission_Capture() R0;
virtual int Mission_Eaten() R0;
virtual int Mission_Guard() R0;
virtual int Mission_AreaGuard() R0;
virtual int Mission_Harvest() R0;
virtual int Mission_Hunt() R0;
virtual int Mission_Move() R0;
virtual int Mission_Retreat() R0;
virtual int Mission_Return() R0;
virtual int Mission_Stop() R0;
virtual int Mission_Unload() R0;
virtual int Mission_Enter() R0;
virtual int Mission_Construction() R0;
virtual int Mission_Selling() R0;
virtual int Mission_Repair() R0;
virtual int Mission_Missile() R0;
virtual int Mission_Open() R0;
virtual int Mission_Rescue() R0;
virtual int Mission_Patrol() R0;
virtual int Mission_ParaDropApproach() R0;
virtual int Mission_ParaDropOverfly() R0;
virtual int Mission_Wait() R0;
virtual int Mission_SpyPlaneApproach() R0;
virtual int Mission_SpyPlaneOverfly() R0;
//Constructor
MissionClass() noexcept
: MissionClass(noinit_t())
{ THISCALL(0x5B2DA0); }
protected:
explicit __forceinline MissionClass(noinit_t) noexcept
: ObjectClass(noinit_t())
{ }
//===========================================================================
//===== Properties ==========================================================
//===========================================================================
public:
Mission CurrentMission;
Mission unknown_mission_B0;
Mission QueuedMission;
bool unknown_bool_B8;
int MissionStatus;
int CurrentMissionStartTime; //in frames
DWORD unknown_C4;
TimerStruct UpdateTimer;
};