forked from Ares-Developers/YRpp
-
Notifications
You must be signed in to change notification settings - Fork 25
/
AircraftClass.h
74 lines (59 loc) · 2.15 KB
/
AircraftClass.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
/*
Aircraft
*/
#pragma once
#include <FootClass.h>
#include <AircraftTypeClass.h>
//AircraftClass
class NOVTABLE AircraftClass : public FootClass, public IFlyControl
{
public:
static const AbstractType AbsID = AbstractType::Aircraft;
static constexpr uintptr_t AbsVTable = 0x7E22A4;
//Static
static constexpr constant_ptr<DynamicVectorClass<AircraftClass*>, 0xA8E390u> const Array{};
//IFlyControl
virtual int __stdcall Landing_Altitude() R0;
virtual int __stdcall Landing_Direction() R0;
virtual long __stdcall Is_Loaded() R0;
virtual long __stdcall Is_Strafe() R0;
virtual long __stdcall Is_Fighter() R0;
virtual long __stdcall Is_Locked() R0;
//IUnknown
virtual HRESULT __stdcall QueryInterface(REFIID iid, void** ppvObject) R0;
virtual ULONG __stdcall AddRef() R0;
virtual ULONG __stdcall Release() R0;
//IPersist
virtual HRESULT __stdcall GetClassID(CLSID* pClassID) R0;
//IPersistStream
virtual HRESULT __stdcall Load(IStream* pStm) R0;
virtual HRESULT __stdcall Save(IStream* pStm, BOOL fClearDirty) R0;
//AbstractClass
virtual AbstractType WhatAmI() const RT(AbstractType);
virtual int Size() const R0;
//Destructor
virtual ~AircraftClass() RX;
//Constructor
AircraftClass(AircraftTypeClass* pType, HouseClass* pOwner) noexcept
: AircraftClass(noinit_t())
{ JMP_THIS(0x413D20); }
protected:
explicit __forceinline AircraftClass(noinit_t) noexcept
: FootClass(noinit_t())
{ }
//===========================================================================
//===== Properties ==========================================================
//===========================================================================
public:
AircraftTypeClass* Type;
bool ShouldLoseAmmo; // Whether or not to deduct ammo after firing run (strafing) is over
bool HasPassengers; //parachutes
bool IsKamikaze; // when crashing down, duh
BuildingClass* DockNowHeadingTo;
bool unknown_bool_6D0;
bool unknown_bool_6D1;
bool IsLocked; // Whether or not aircraft is locked to a firing run (strafing)
char NumParadropsLeft;
bool IsCarryallNotLanding;
bool IsReturningFromAttackRun; // Aircraft finished attack run and/or went idle and is now returning from it
};