Skip to content

Commit 939cc4c

Browse files
FlenarnDevFlenarn
andauthored
feat: Misc additions. (#58)
* feat: Misc fixes and more additions. * maintenance * feat: BGSDecalEmitter declared. * maintenance * feat: Misc. RE, some stuff needed for custom music stingers RE'd. * maintenance --------- Co-authored-by: Flenarn <[email protected]> Co-authored-by: FlenarnDev <[email protected]>
1 parent f263964 commit 939cc4c

34 files changed

+685
-131
lines changed

include/RE/B/BGSAssociationType.h

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,21 @@ namespace RE
1313
static constexpr auto VTABLE{ VTABLE::BGSAssociationType };
1414
static constexpr auto FORM_ID{ ENUM_FORM_ID::kASTP };
1515

16+
enum class Member
17+
{
18+
kParent = 0x0,
19+
kChild = 0x1,
20+
kCount = 0x2
21+
};
22+
23+
enum class Flags
24+
{
25+
kFamily = 0x1
26+
};
27+
1628
// members
17-
BSFixedStringCS associationLabel[2][2]; // 20
18-
std::uint32_t flags; // 40
29+
BSFixedStringCS associationLabel[2][2]; // 20
30+
REX::EnumSet<Flags, std::uint32_t> flags; // 40
1931
};
2032
static_assert(sizeof(BGSAssociationType) == 0x48);
2133
}

include/RE/B/BGSCharacterMorph.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,5 +112,18 @@ namespace RE
112112
kLowerTorso = 0x3,
113113
kLegs = 0x4
114114
};
115+
116+
enum class Axis : std::uint32_t
117+
{
118+
kPosX = 0x0,
119+
kPosY = 0x1,
120+
kPosZ = 0x2,
121+
kRotX = 0x3,
122+
kRotY = 0x4,
123+
kRotZ = 0x5,
124+
kScaleX = 0x6,
125+
kScaleY = 0x7,
126+
kScaleZ = 0x8
127+
};
115128
}
116129
}

include/RE/B/BGSConstructibleObject.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,13 @@ namespace RE
3333
[[nodiscard]] TESForm* GetCreatedItem() const noexcept { return createdItem; }
3434
[[nodiscard]] std::uint16_t GetWorkshopPriority() const noexcept { return data.workshopPriority; }
3535

36+
bool PlayerPassesConditions()
37+
{
38+
using func_t = decltype(&BGSConstructibleObject::PlayerPassesConditions);
39+
static REL::Relocation<func_t> func{ ID::BGSConstructibleObject::PlayerPassesConditions };
40+
return func(this);
41+
}
42+
3643
// members
3744
BSTArray<BSTTuple<TESForm*, BGSTypedFormValuePair::SharedVal>>* requiredItems; // 50
3845
TESCondition conditions; // 58

include/RE/B/BGSDecalEmitter.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#pragma once
2+
3+
#include "RE/N/NiPointer.h"
4+
5+
namespace RE
6+
{
7+
class BGSImpactData;
8+
class BSTempEffectParticle;
9+
10+
class BGSDecalEmitter
11+
{
12+
public:
13+
// members
14+
std::int32_t decalsToEmit; // 00
15+
bool finished; // 04
16+
BGSImpactData* decalImpactData; // 08
17+
NiPointer<BSTempEffectParticle> particleData; // 10
18+
};
19+
static_assert(sizeof(BGSDecalEmitter) == 0x18);
20+
}

include/RE/B/BGSDecalGroup.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#pragma once
2+
3+
#include "RE/B/BSTArray.h"
4+
5+
namespace RE
6+
{
7+
class DECAL_CREATION_DATA;
8+
9+
class BGSDecalGroup
10+
{
11+
public:
12+
// members
13+
bool permanentGroup; // 00
14+
bool manualSaveLoad; // 01
15+
BSTArray<std::uint32_t> decalGroup; // 08
16+
BSTArray<DECAL_CREATION_DATA*> pendingDecals; // 20
17+
};
18+
static_assert(sizeof(BGSDecalGroup) == 0x38);
19+
}

include/RE/B/BGSLOSData.h

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#pragma once
2+
3+
#include "RE/N/NiRefObject.h"
4+
5+
namespace RE
6+
{
7+
class __declspec(novtable) BGSLOSData :
8+
public NiRefObject // 00
9+
{
10+
public:
11+
static constexpr auto RTTI{ RTTI::BGSLOSData };
12+
static constexpr auto VTABLE{ VTABLE::BGSLOSData };
13+
14+
// members
15+
std::uint8_t* losData; // 10
16+
std::uint16_t* quadGridOffsetArray; // 18
17+
std::uint32_t losDataSize; // 20
18+
std::uint16_t indexCount; // 24
19+
};
20+
static_assert(sizeof(BGSLOSData) == 0x28);
21+
}

include/RE/B/BGSLocAlias.h

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#pragma once
2+
3+
#include "RE/B/BGSBaseAlias.h"
4+
5+
namespace RE
6+
{
7+
class BGSKeyword;
8+
class BGSLocation;
9+
class TESCondition;
10+
class TESQuest;
11+
12+
class __declspec(novtable) BGSLocAlias :
13+
public BGSBaseAlias // 00
14+
{
15+
public:
16+
static constexpr auto RTTI{ RTTI::BGSLocAlias };
17+
static constexpr auto VTABLE{ VTABLE::BGSLocAlias };
18+
19+
// members
20+
BGSLocation* forcedLoc; // 28
21+
BGSKeyword* forcedFromAliasFilter; // 30
22+
TESQuest* externalQuest; // 38
23+
TESCondition* conditions; // 40
24+
std::uint32_t forcedFromAlias; // 48
25+
std::uint32_t forcedFromEvent; // 4C
26+
std::uint32_t forcedEventData; // 50
27+
std::uint32_t externalAlias; // 54
28+
std::uint32_t closestToAlias; // 58
29+
};
30+
static_assert(sizeof(BGSLocAlias) == 0x60);
31+
}

include/RE/B/BGSQuestObjective.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#pragma once
2+
3+
#include "RE/B/BGSLocalizedString.h"
4+
5+
namespace RE
6+
{
7+
class TESQuest;
8+
class TESQuestTarget;
9+
10+
class BGSQuestObjective
11+
{
12+
public:
13+
// members
14+
BGSLocalizedString displayText; // 00
15+
TESQuest* ownerQuest; // 08
16+
TESQuestTarget** targets; // 10
17+
std::uint32_t numTargets; // 18
18+
std::uint16_t index; // 1C
19+
bool initialized; // 1E
20+
char state; // 1F
21+
std::uint32_t flags; // 20
22+
};
23+
static_assert(sizeof(BGSQuestObjective) == 0x28);
24+
}

include/RE/B/BGSTerminal.h

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,16 @@ namespace RE
3030
class MenuItem
3131
{
3232
public:
33+
enum class Flag
34+
{
35+
kBackToTop = 0x0,
36+
kRedraw = 0x1,
37+
kSubmenu = 0x2,
38+
kText = 0x3,
39+
kImage = 0x4,
40+
kHolotape = 0x5
41+
};
42+
3343
union USelectionResult
3444
{
3545
BGSTerminal* subMenu;
@@ -40,12 +50,12 @@ namespace RE
4050
static_assert(sizeof(USelectionResult) == 0x8);
4151

4252
// members
43-
BGSLocalizedString itemText; // 00
44-
BGSLocalizedString responseText; // 08
45-
USelectionResult selectionResult; // 10
46-
TESCondition conditions; // 18
47-
std::uint16_t id; // 20
48-
std::int8_t flags; // 22
53+
BGSLocalizedString itemText; // 00
54+
BGSLocalizedString responseText; // 08
55+
USelectionResult selectionResult; // 10
56+
TESCondition conditions; // 18
57+
std::uint16_t id; // 20
58+
REX::EnumSet<Flag, std::int8_t> flags; // 22
4959
};
5060
static_assert(sizeof(MenuItem) == 0x28);
5161

include/RE/B/BSIMusicTrack.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,14 @@ namespace RE
88
static constexpr auto RTTI{ RTTI::BSIMusicTrack };
99
static constexpr auto VTABLE{ VTABLE::BSIMusicTrack };
1010

11-
enum class MUSIC_STATUS;
11+
enum class MUSIC_STATUS
12+
{
13+
kInactive = 0x0,
14+
kPlaying = 0x1,
15+
kPaused = 0x2,
16+
kFinishing = 0x3,
17+
kFinished = 0x4
18+
};
1219

1320
virtual ~BSIMusicTrack() = default; // 00
1421

0 commit comments

Comments
 (0)