forked from Ares-Developers/YRpp
-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathMissionClass.h
116 lines (96 loc) · 3.08 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
/*
Base class for all game objects with missions (yeah... not many).
*/
#pragma once
#include <ObjectClass.h>
class CCINIClass;
class MissionControlClass
{
public:
DEFINE_ARRAY_REFERENCE(MissionControlClass, [0x20], Array, 0xA8E3A8)
DEFINE_ARRAY_REFERENCE(const char*, [0x20], Names, 0xA8E3A8)
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 Override_Mission(Mission mission, AbstractClass* target, AbstractClass* destination) RX;
virtual bool Mission_Revert() R0;
virtual bool MissionIsOverriden() const R0;
virtual bool ReadyToNextMission() 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 SuspendedMission;
Mission QueuedMission;
bool unknown_bool_B8;
int MissionStatus;
int CurrentMissionStartTime; //in frames
int MissionAccumulateTime;
DECLARE_PROPERTY(CDTimerClass, UpdateTimer);
};