forked from Phobos-developers/YRpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
IsometricTileTypeClass.h
83 lines (67 loc) · 2.46 KB
/
IsometricTileTypeClass.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
#pragma once
#include <ObjectTypeClass.h>
class NOVTABLE IsometricTileTypeClass : public ObjectTypeClass
{
public:
static const AbstractType AbsID = AbstractType::IsotileType;
//Array
static constexpr constant_ptr<DynamicVectorClass<IsometricTileTypeClass*>, 0xA8ED28u> const Array{};
//IPersist
virtual HRESULT __stdcall GetClassID(CLSID* pClassID) R0;
virtual HRESULT __stdcall Load(IStream* pStm) R0;
virtual HRESULT __stdcall Save(IStream* pStm, BOOL fClearDirty) R0;
//AbstractClass
virtual void PointerExpired(AbstractClass* pAbstract, bool removed) RX;
virtual AbstractType WhatAmI() const RT(AbstractType);
virtual int Size() const R0;
virtual void ComputeCRC(CRCEngine& crc) const RX;
virtual int GetArrayIndex() const R0;
//ObjectTypeClass
virtual CoordStruct* vt_entry_6C(CoordStruct* pDest, CoordStruct* pSrc) const R0;
virtual bool SpawnAtMapCoords(CellStruct* pMapCoords, HouseClass* pOwner) R0;
virtual ObjectClass* CreateObject(HouseClass* pOwner) R0;
virtual void vt_entry_90(DWORD dwUnk) RX;
virtual SHPStruct* GetImage() const R0;
//Destructor
virtual ~IsometricTileTypeClass() RX;
//Constructor
IsometricTileTypeClass(int ArrayIndex, int Minus65, int Zero1,
const char* pName, int Zero2) noexcept
: IsometricTileTypeClass(noinit_t())
{ JMP_THIS(0x5447C0); }
protected:
explicit __forceinline IsometricTileTypeClass(noinit_t) noexcept
: ObjectTypeClass(noinit_t())
{ }
//===========================================================================
//===== Properties ==========================================================
//===========================================================================
public:
int ArrayIndex;
int MarbleMadnessTile;
int NonMarbleMadnessTile;
DWORD unk_2A0;
DynamicVectorClass<Color16Struct*> unk_2A4;
DWORD unk_2BC;
int ToSnowTheater;
int ToTemperateTheater;
int TileAnimIndex; //Tile%02dAnim, actually an AnimTypeClass array index...
int TileXOffset; //Tile%02dXOffset
int TileYOffset; //Tile%02dYOffset
int TileAttachesTo; //Tile%02dAttachesTo, iso tile index?
int TileZAdjust; //Tile%02dZAdjust
DWORD unk_2DC; //0xBF
bool Morphable;
bool ShadowCaster;
bool AllowToPlace; //default true
bool RequiredByRMG;
DWORD unk_2E4;
DWORD unk_2E8;
DWORD unk_2EC;
int unk_2F0; //default 1, no idea
bool unk_2F4; //like always true
char FileName[0xE]; // WARNING! Westwood strncpy's 0xE bytes into this buffer without NULL terminating it.
bool AllowBurrowing;
bool AllowTiberium;
DWORD unk_308;
};