Skip to content

Commit 32191a1

Browse files
committed
feat: additional Tile:: defs
1 parent 558eee4 commit 32191a1

3 files changed

Lines changed: 123 additions & 7 deletions

File tree

include/RE/H/HUDEffectIcon.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44

55
namespace RE
66
{
7+
class ActiveEffect;
78
class Tile;
89

910
class HUDEffectIcon
1011
{
1112
public:
1213
// members
13-
Tile* tile; // 00
14-
BSSimpleList<void*>* fxList; // 08 - BSSimpleList<ActiveEffect*>*
14+
Tile* tile; // 00
15+
BSSimpleList<ActiveEffect*>* fxList; // 08
1516
};
1617
static_assert(sizeof(HUDEffectIcon) == 0x10);
1718
}

include/RE/M/Menu.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
#include "RE/G/GAMEPAD_BUTTON.h"
55
#include "RE/I/IVPairableItem.h"
66
#include "RE/M/MENU_CLASS.h"
7+
#include "RE/T/Tile.h"
78

89
namespace RE
910
{
10-
class Tile;
1111
class TileMenu;
1212

1313
class Menu :
@@ -52,7 +52,7 @@ namespace RE
5252

5353
// members
5454
TileMenu* tileMenu; // 18
55-
BSSimpleList<void*> templates; // 20 - BSSimpleList<Tile::TileTemplate*>
55+
BSSimpleList<Tile::TileTemplate*> templates; // 20
5656
Tile* lastTile; // 30
5757
std::int32_t isModal; // 38
5858
std::int32_t menuThickness; // 3C

include/RE/T/Tile.h

Lines changed: 118 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#pragma once
22

33
#include "RE/B/BSStringT.h"
4+
#include "RE/B/BSTList.h"
45
#include "RE/M/MENU_CLASS.h"
56
#include "RE/N/NiTList.h"
67

@@ -15,11 +16,88 @@ namespace RE
1516
inline static constexpr auto RTTI = RTTI::Tile;
1617
inline static constexpr auto VTABLE = VTABLE::Tile;
1718

18-
struct Action; // sizeof(Action) == 0x30
19+
struct TileTemplate;
20+
struct TileTemplateItem;
21+
struct Value;
1922

20-
struct FadeControl
23+
enum class enumAction : std::int32_t
24+
{
25+
hNullAction = 0x0,
26+
hGroupStart = 0xA,
27+
hGroupEnd = 0xF,
28+
hActionStart = 0x14,
29+
hActionEnd = 0x19,
30+
hTraitStart = 0x1E,
31+
hTraitEnd = 0x23,
32+
hTileStart = 0x28,
33+
hTileEnd = 0x2D,
34+
hSimpleTrait = 0x32,
35+
hSimpleAction = 0x37,
36+
hTraitLink = 0x3C,
37+
hTop = 0x65,
38+
hCopy = 0x7D1,
39+
hFirstAction = 0x7D1,
40+
hAdd = 0x7D2,
41+
hSub = 0x7D3,
42+
hMult = 0x7D4,
43+
hDiv = 0x7D5,
44+
hRand = 0x7D6,
45+
hUser = 0x7D7,
46+
hGt = 0x7D8,
47+
hGte = 0x7D9,
48+
hEq = 0x7DA,
49+
hLte = 0x7DB,
50+
hLt = 0x7DC,
51+
hMin = 0x7DD,
52+
hMax = 0x7DE,
53+
hAnd = 0x7DF,
54+
hOr = 0x7E0,
55+
hNeq = 0x7E1,
56+
hMod = 0x7E2,
57+
hTrunc = 0x7E3,
58+
hAbs = 0x7E4,
59+
hOnlyIf = 0x7E5,
60+
hOnlyIfNot = 0x7E6,
61+
hLn = 0x7E7,
62+
hLog = 0x7E8,
63+
hCeil = 0x7E9,
64+
hNot = 0x7EA,
65+
hRef = 0x7EB,
66+
hLastAction = 0x7EB,
67+
};
68+
69+
struct Action
2170
{
71+
private:
72+
union union_t
73+
{
74+
float value;
75+
Value* owner;
76+
enumAction groupType;
77+
};
78+
2279
public:
80+
Action* prevAction; // 00
81+
Action* nextAction; // 08
82+
union_t value; // 10
83+
enumAction action; // 18
84+
Action* prevReaction; // 20
85+
Action* nextReaction; // 28
86+
};
87+
static_assert(sizeof(Action) == 0x30);
88+
89+
struct BuildStorage
90+
{
91+
// members
92+
TileTemplate* _template; // 00
93+
BSSimpleList<TileTemplate*> subTemplates; // 08
94+
TileTemplate* currentTemplate; // 18
95+
bool deleteTemplates; // 20
96+
};
97+
static_assert(sizeof(BuildStorage) == 0x28);
98+
99+
struct FadeControl
100+
{
23101
// members
24102
Tile* parent; // 00
25103
std::int32_t trait; // 08
@@ -30,9 +108,46 @@ namespace RE
30108
};
31109
static_assert(sizeof(FadeControl) == 0x20);
32110

33-
struct Value
111+
struct StringListElement
34112
{
113+
// members
114+
std::int32_t index; // 00
115+
std::int32_t accessCount; // 04
116+
BSString string; // 08
117+
};
118+
static_assert(sizeof(StringListElement) == 0x18);
119+
120+
struct TileTemplate
121+
{
122+
// members
123+
BSString name; // 00
124+
BuildStorage* parent; // 10
125+
NiTList<TileTemplateItem*> list; // 18
126+
};
127+
static_assert(sizeof(TileTemplate) == 0x38);
128+
129+
struct TileTemplateItem
130+
{
131+
private:
132+
union union_t
133+
{
134+
std::int32_t ta;
135+
Tile* tile;
136+
TileTemplate* _template;
137+
};
138+
35139
public:
140+
// members
141+
std::int32_t cmd; // 00
142+
float val; // 04
143+
BSString str; // 08
144+
union_t u; // 18
145+
std::int32_t line; // 20
146+
};
147+
static_assert(sizeof(TileTemplateItem) == 0x28);
148+
149+
struct Value
150+
{
36151
// members
37152
Tile* parent; // 00
38153
float value; // 08

0 commit comments

Comments
 (0)