forked from Ares-Developers/YRpp
-
Notifications
You must be signed in to change notification settings - Fork 25
/
AnimTypeClass.h
127 lines (113 loc) · 2.92 KB
/
AnimTypeClass.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
120
121
122
123
124
125
126
127
/*
AnimTypes are initialized by INI files.
*/
#pragma once
#include <ObjectTypeClass.h>
//forward declarations
class OverlayTypeClass;
class ParticleTypeClass;
class WarheadTypeClass;
class NOVTABLE AnimTypeClass : public ObjectTypeClass
{
public:
static const AbstractType AbsID = AbstractType::AnimType;
//Array
ABSTRACTTYPE_ARRAY(AnimTypeClass, 0x8B4150u);
static AnimTypeClass* __fastcall FindOrAllocate(const char* id)
{ JMP_STD(0x428B80); }
//IPersist
virtual HRESULT __stdcall GetClassID(CLSID* pClassID) R0;
//AbstractClass
virtual AbstractType WhatAmI() const RT(AbstractType);
virtual int Size() const R0;
//ObjectTypeClass
virtual bool SpawnAtMapCoords(CellStruct* pMapCoords,HouseClass* pOwner) R0;
virtual ObjectClass* CreateObject(HouseClass* owner) R0; // ! this just returns NULL instead of creating the anim, fucking slackers
//AnimTypeClass
virtual SHPStruct* LoadImage() R0;
virtual void Load2DArt() RX;
//Destructor
virtual ~AnimTypeClass() RX;
//Constructor
AnimTypeClass(const char* pID) noexcept
: AnimTypeClass(noinit_t())
{ JMP_THIS(0x427530); }
protected:
explicit __forceinline AnimTypeClass(noinit_t) noexcept
: ObjectTypeClass(noinit_t())
{ }
//===========================================================================
//===== Properties ==========================================================
//===========================================================================
public:
int ArrayIndex;
int MiddleFrameIndex;
int MiddleFrameWidth;
int MiddleFrameHeight;
BYTE unknown_2A4;
double Damage;
int Rate;
int Start;
int LoopStart;
int LoopEnd;
int End;
int LoopCount;
AnimTypeClass* Next;
int SpawnsParticle; // index of that ParticleTypeClass
int NumParticles;
int DetailLevel;
int TranslucencyDetailLevel;
RandomStruct RandomLoopDelay;
RandomStruct RandomRate;
int Translucency;
AnimTypeClass* Spawns;
int SpawnCount;
int Report; //VocClass index
int StopSound; //VocClass index
AnimTypeClass* BounceAnim;
AnimTypeClass* ExpireAnim;
AnimTypeClass* TrailerAnim;
int TrailerSeperation; //MISTYPE BY WESTWOOD!
double Elasticity;
double MinZVel;
double unknown_double_320;
double MaxXYVel;
WarheadTypeClass* Warhead;
int DamageRadius;
OverlayTypeClass* TiberiumSpawnType;
int TiberiumSpreadRadius;
int YSortAdjust;
int YDrawOffset;
int ZAdjust;
int MakeInfantry;
int RunningFrames;
bool IsFlamingGuy;
bool IsVeins;
bool IsMeteor;
bool TiberiumChainReaction;
bool IsTiberium;
bool HideIfNoOre;
bool Bouncer;
bool Tiled;
bool ShouldUseCellDrawer;
bool UseNormalLight;
bool DemandLoad; // not loaded from ini anymore
bool FreeLoad; // not loaded from ini anymore
bool IsAnimatedTiberium;
bool AltPalette;
bool Normalized;
Layer Layer;
bool DoubleThick;
bool Flat;
bool Translucent;
bool Scorch;
bool Flamer;
bool Crater;
bool ForceBigCraters;
bool Sticky;
bool PingPong;
bool Reverse;
bool Shadow;
bool PsiWarning;
bool ShouldFogRemove;
};