forked from Ares-Developers/YRpp
-
Notifications
You must be signed in to change notification settings - Fork 25
/
InfantryClass.h
71 lines (54 loc) · 2.01 KB
/
InfantryClass.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
/*
Infantry
*/
#pragma once
#include <FootClass.h>
#include <InfantryTypeClass.h>
class NOVTABLE InfantryClass : public FootClass
{
public:
static const AbstractType AbsID = AbstractType::Infantry;
static constexpr uintptr_t AbsVTable = 0x7EB058;
//Static
static constexpr constant_ptr<DynamicVectorClass<InfantryClass*>, 0xA83DE8u> const Array{};
//IPersist
virtual HRESULT __stdcall GetClassID(CLSID* pClassID) R0;
//Destructor
virtual ~InfantryClass() RX;
//AbstractClass
virtual AbstractType WhatAmI() const RT(AbstractType);
virtual int Size() const R0;
//ObjectClass
virtual Action MouseOverObject(ObjectClass const* pObject, bool ignoreForce = false) const override JMP_THIS(0x51E3B0);
//TechnoClass
virtual FireError GetFireError(AbstractClass* pTarget, int nWeaponIndex, bool ignoreRange) const override JMP_THIS(0x51C8B0);
//InfantryClass
virtual bool IsDeployed() const R0;
virtual bool PlayAnim(Sequence index, bool force = false, bool randomStartFrame = false) R0;
//Constructor
InfantryClass(InfantryTypeClass* pType, HouseClass* pOwner) noexcept
: InfantryClass(noinit_t())
{ JMP_THIS(0x517A50); }
protected:
explicit __forceinline InfantryClass(noinit_t) noexcept
: FootClass(noinit_t())
{ }
//===========================================================================
//===== Properties ==========================================================
//===========================================================================
public:
InfantryTypeClass* Type;
Sequence SequenceAnim; //which is currently playing
CDTimerClass unknown_Timer_6C8;
DWORD PanicDurationLeft; // set in ReceiveDamage on panicky units
bool PermanentBerzerk; // set by script action, not cleared anywhere
bool Technician;
bool unknown_bool_6DA;
bool Crawling;
bool unknown_bool_6DC;
bool unknown_bool_6DD;
DWORD unknown_6E0;
bool ShouldDeploy;
int unknown_int_6E8;
PROTECTED_PROPERTY(DWORD, unused_6EC); //??
};