Skip to content

Commit f5d0805

Browse files
committed
feat: merge upstream
2 parents a961090 + 5b6564d commit f5d0805

132 files changed

Lines changed: 1011 additions & 972 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

include/RE/A/AITimer.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ namespace RE
44
{
55
struct AITimer
66
{
7+
static float QTimer();
8+
79
//members
810
float aiTimer; // 00
911
float timer; // 04

include/RE/A/Actor.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -537,6 +537,7 @@ namespace RE
537537
float GetActorValueModifier(ACTOR_VALUE_MODIFIER a_modifier, ActorValue a_value) const;
538538
float GetAimAngle() const;
539539
float GetAimHeading() const;
540+
float GetAttackReach() const;
540541
InventoryEntryData* GetAttackingWeapon();
541542
const InventoryEntryData* GetAttackingWeapon() const;
542543
bhkCharacterController* GetCharController() const;
@@ -548,6 +549,7 @@ namespace RE
548549
const TESPackage* GetCurrentPackage() const;
549550
TESShout* GetCurrentShout();
550551
const TESShout* GetCurrentShout() const;
552+
float GetBoundRadius() const;
551553
InventoryEntryData* GetEquippedEntryData(bool a_leftHand) const;
552554
TESForm* GetEquippedObject(bool a_leftHand) const;
553555
TESForm* GetEquippedObjectInSlot(const BGSEquipSlot* slot) const;
@@ -569,7 +571,6 @@ namespace RE
569571
bool GetPlayerControls() const;
570572
TESRace* GetRace() const;
571573
float GetRegenDelay(ActorValue a_actorValue) const;
572-
bool GetRider(NiPointer<Actor>& a_outRider);
573574
[[nodiscard]] TESObjectARMO* GetSkin() const;
574575
[[nodiscard]] TESObjectARMO* GetSkin(BGSBipedObjectForm::BipedObjectSlot a_slot, bool a_noInit = false);
575576
[[nodiscard]] SOUL_LEVEL GetSoulSize() const;
@@ -618,6 +619,7 @@ namespace RE
618619
bool IsMoving() const;
619620
bool IsOnMount() const;
620621
bool IsOverEncumbered() const;
622+
bool IsPathing() const;
621623
bool IsPlayerTeammate() const;
622624
bool IsPowerAttacking() const;
623625
bool IsProtected() const;
@@ -715,8 +717,8 @@ namespace RE
715717
BSTSmartPointer<BipedAnim> biped; // 260
716718
float armorRating; // 268
717719
float armorBaseFactorSum; // 26C
718-
std::int8_t soundCallBackSet; // 271
719-
std::uint8_t unk271; // 270
720+
std::int8_t soundCallBackSet; // 270
721+
std::uint8_t unk271; // 271
720722
std::uint8_t unk272; // 272
721723
std::uint8_t unk273; // 273
722724
std::uint32_t unk274; // 274

include/RE/B/BGSCameraPath.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ namespace RE
5555
~BGSCameraPath() override; // 00
5656

5757
// override (TESForm)
58-
void InitializeData() override; // 04
59-
void ClearData() override; // 05
60-
bool Load(TESFile* a_mod) override; // 06
61-
TESForm* CreateDuplicateForm(bool a_createEditorID, void* a_arg2) override; // 09
62-
void InitItemImpl() override; // 13
58+
void InitializeData() override; // 04
59+
void ClearData() override; // 05
60+
bool Load(TESFile* a_mod) override; // 06
61+
TESForm* CreateDuplicateForm(bool a_createEditorID, NiTPointerMap<TESForm*, TESForm*>* a_copyMap) override; // 09
62+
void InitItemImpl() override; // 13
6363

6464
// members
6565
TESCondition conditions; // 20

include/RE/B/BGSPerk.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ namespace RE
1515

1616
struct PerkData // DATA
1717
{
18-
bool trait; // 0
19-
std::int8_t level; // 1
20-
std::int8_t numRanks; // 2
21-
bool playable; // 3
22-
bool hidden; // 4
18+
bool trait; // 0
19+
std::uint8_t level; // 1
20+
std::uint8_t numRanks; // 2
21+
bool playable; // 3
22+
bool hidden; // 4
2323
};
2424
static_assert(sizeof(PerkData) == 0x5);
2525

include/RE/B/BGSTerrainManager.h

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,49 @@
11
#pragma once
22

3+
#include "RE/B/BSTArray.h"
4+
35
namespace RE
46
{
57
class BGSTerrainNode;
8+
class TESWorldSpace;
69

710
class BGSTerrainManager
811
{
912
public:
10-
std::uint64_t unk00; // 00
11-
TESWorldSpace* worldSpace; // 08
12-
BGSTerrainNode* rootNode; // 10
13-
std::int16_t minCellX; // 18
14-
std::int16_t minCellY; // 1A
15-
std::uint32_t unk1C; // 1C
16-
std::uint32_t unk20; // 20
17-
std::uint32_t unk24; // 24
18-
std::uint64_t unk28; // 28
19-
bool unk30; // 30
20-
std::uint8_t unk31; // 31
21-
bool lodTreesHidden; // 32
22-
std::uint8_t unk33; // 33
23-
bool needsImmediateUpdate; // 34
24-
std::uint8_t unk35; // 35
25-
bool hasLOD; // 36
26-
std::uint8_t unk37; // 37
27-
std::uint64_t unk38; // 38
28-
std::uint64_t unk40; // 40
29-
std::uint64_t unk48; // 48
30-
std::uint64_t unk50; // 50
31-
std::uint64_t unk58; // 58
32-
std::uint64_t unk60; // 60
33-
std::uint64_t unk68; // 68
34-
std::uint64_t unk70; // 70
35-
std::uint32_t nextUpdateNode; // 78
36-
std::uint32_t unk7C; // 7C
37-
std::uint64_t unk80; // 80
38-
std::uint64_t unk88; // 88
39-
std::uint64_t unk90; // 90
40-
std::uint64_t unk98; // 98
41-
std::uint64_t unkA0; // A0
42-
std::uint64_t unkA8; // A8
43-
std::uint64_t unkB0; // B0
44-
std::uint64_t unkB8; // B8
45-
std::uint64_t unkC0; // C0
46-
std::uint64_t unkC8; // C8
13+
std::uint64_t unk00; // 00
14+
TESWorldSpace* worldSpace; // 08
15+
BGSTerrainNode* rootNode; // 10
16+
std::int16_t minCellX; // 18 - read from .lod file
17+
std::int16_t minCellY; // 1A - read from .lod file
18+
std::uint32_t maxLevel; // 1C - read from .lod file
19+
std::uint32_t minLevel; // 20 - read from .lod file
20+
std::uint32_t rootLevel; // 24 - read from .lod file
21+
std::uint32_t segmentedBlockLevel; // 28 - default 4
22+
std::uint32_t treeLevel; // 2C - default 4
23+
bool unk30; // 30
24+
std::uint8_t unk31; // 31
25+
bool lodTreesHidden; // 32
26+
std::uint8_t unk33; // 33
27+
bool needsImmediateUpdate; // 34
28+
std::uint8_t unk35; // 35
29+
bool hasLOD; // 36
30+
std::uint8_t unk37; // 37
31+
std::uint64_t unk38; // 38
32+
std::uint64_t unk40; // 40
33+
std::uint64_t unk48; // 48
34+
std::uint64_t unk50; // 50
35+
std::uint64_t unk58; // 58
36+
BSTArray<BGSTerrainNode*> updateNodes; // 60
37+
std::uint32_t nextUpdateNode; // 78
38+
std::uint32_t unk7C; // 7C
39+
BSTArray<BGSTerrainNode*> immediateUpdates; // 80
40+
std::uint64_t unk98; // 98 - BSSpinLock?
41+
std::uint64_t unkA0; // A0
42+
std::uint64_t unkA8; // A8
43+
std::uint64_t unkB0; // B0
44+
std::uint64_t unkB8; // B8
45+
std::uint64_t unkC0; // C0
46+
std::uint64_t unkC8; // C8
4747
};
4848
static_assert(sizeof(BGSTerrainManager) == 0xD0);
4949
}

include/RE/B/BSInvMarker.h

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#pragma once
2+
3+
#include "RE/N/NiExtraData.h"
4+
#include "RE/N/NiPoint3.h"
5+
6+
namespace RE
7+
{
8+
class BSInvMarker : public NiExtraData
9+
{
10+
public:
11+
inline static constexpr auto RTTI = RTTI_BSInvMarker;
12+
inline static constexpr auto Ni_RTTI = NiRTTI_BSInvMarker;
13+
inline static constexpr auto VTABLE = VTABLE_BSInvMarker;
14+
15+
RE::NiPoint3 GetRotationEulerAnglesXYZ() const;
16+
17+
// members
18+
float zoom; // 18
19+
std::uint16_t rotationX; // 1C
20+
std::uint16_t rotationY; // 1E
21+
std::uint16_t rotationZ; // 20
22+
std::uint8_t pad22[6]; // 22
23+
};
24+
static_assert(sizeof(BSInvMarker) == 0x28);
25+
}

include/RE/B/BarterMenu.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ namespace RE
1010
struct ItemCard;
1111
struct ItemList;
1212

13+
class Actor;
14+
1315
// menuDepth = 0
1416
// flags = kPausesGame | kUsesMenuContext | kDisablePauseMenu | kUpdateUsesCursor | kInventoryItemMenu | kCustomRendering
1517
// context = kItemMenu
@@ -29,6 +31,8 @@ namespace RE
2931

3032
[[nodiscard]] static RefHandle GetTargetRefHandle();
3133

34+
static void OpenMenu(Actor* a_targetActor);
35+
3236
// members
3337
ItemList* itemList; // 30
3438
ItemCard* itemCard; // 38
@@ -42,7 +46,8 @@ namespace RE
4246
std::uint16_t pad7A; // 7A
4347
std::uint32_t pad7C; // 7C
4448
BSTArray<void*> unk80; // 80
45-
std::uint64_t unk98; // 98
49+
std::int32_t playerGold; // 90
50+
std::int32_t merchantGold; // 94
4651
std::uint32_t unkA0; // A0
4752
bool pcControlsReady; // A4
4853
std::uint8_t padA5; // A5

include/RE/B/bhkRigidBodyT.h

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#pragma once
2+
3+
#include "RE/B/bhkRigidBody.h"
4+
#include "RE/H/hkQuaternion.h"
5+
#include "RE/H/hkVector4.h"
6+
7+
namespace RE
8+
{
9+
class bhkRigidBodyT : bhkRigidBody
10+
{
11+
public:
12+
inline static constexpr auto RTTI = RTTI_bhkRigidBodyT;
13+
inline static constexpr auto Ni_RTTI = NiRTTI_bhkRigidBodyT;
14+
inline static constexpr auto VTABLE = VTABLE_bhkRigidBodyT;
15+
16+
~bhkRigidBodyT() override; // 00
17+
18+
// override (bhkRigidBody)
19+
const NiRTTI* GetRTTI() const override; // 02
20+
NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
21+
void LoadBinary(NiStream& a_stream) override; // 18
22+
void SaveBinary(NiStream& a_stream) override; // 1B
23+
void Unk_31(void) override; // 31
24+
void GetPosition(hkVector4& a_outPosition) override; // 33
25+
void GetRotation(hkQuaternion& a_outRotation) override; // 34
26+
void SetPosition(hkVector4& a_position) override; // 35
27+
void SetRotation(hkQuaternion& a_rotation) override; // 36
28+
void SetPositionAndRotation(hkVector4& a_position, hkQuaternion& a_rotation) override; // 37
29+
void GetCenterOfMassWorld(hkVector4& a_outCenterOfMassWorld) override; // 39
30+
void GetTransform(hkTransform& a_outTransform) override; // 3A
31+
32+
hkQuaternion rotation; // 40
33+
hkVector4 translation; // 50
34+
};
35+
static_assert(sizeof(bhkRigidBodyT) == 0x60);
36+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#pragma once
2+
3+
#include "RE/B/BSFixedString.h"
4+
#include "RE/B/BSTArray.h"
5+
#include "RE/B/BSTHashMap.h"
6+
7+
namespace RE
8+
{
9+
class Actor;
10+
class CombatBehaviorResource;
11+
class CombatBehaviorThread;
12+
class CombatController;
13+
class CombatGroup;
14+
class CombatInventory;
15+
class CombatState;
16+
17+
class CombatBehaviorController
18+
{
19+
public:
20+
static Actor* GetCurrentAttacker();
21+
static CombatController* GetCurrentCombatController();
22+
static CombatGroup* GetCurrentCombatGroup();
23+
static CombatInventory* GetCurrentCombatInventory();
24+
static CombatState* GetCurrentCombatState();
25+
26+
// members
27+
CombatBehaviorThread* defaultThread; // 00
28+
BSTArray<CombatBehaviorThread*> activeThreads; // 08
29+
CombatController* combatController; // 20
30+
BSTHashMap<BSFixedString, CombatBehaviorResource*> resources; // 28
31+
BSTArray<CombatBehaviorThread*> queued; // 58
32+
std::uint32_t nextThreadID; // 70
33+
std::uint32_t pad74; // 74
34+
};
35+
static_assert(sizeof(CombatBehaviorController) == 0x78);
36+
}

include/RE/C/CombatBehaviorStack.h

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#pragma once
2+
3+
namespace RE
4+
{
5+
class CombatBehaviorStack
6+
{
7+
public:
8+
class ObjectPtr
9+
{
10+
public:
11+
template <typename T>
12+
T* GetObject()
13+
{
14+
return stack ? stack->GetObject<T>(pos) : nullptr;
15+
}
16+
17+
template <typename T>
18+
const T* GetObject() const
19+
{
20+
return stack ? stack->GetObject<T>(pos) : nullptr;
21+
}
22+
23+
// members
24+
const CombatBehaviorStack* stack; // 00
25+
std::uint32_t pos; // 08
26+
std::uint32_t pad0C; // 0C
27+
};
28+
static_assert(sizeof(ObjectPtr) == 0x10);
29+
30+
template <typename T>
31+
T* GetObject(std::uint32_t pos)
32+
{
33+
return buffer ? reinterpret_cast<T*>(&buffer[pos]) : nullptr;
34+
}
35+
36+
template <typename T>
37+
const T* GetObject(std::uint32_t pos) const
38+
{
39+
return buffer ? reinterpret_cast<const T*>(&buffer[pos]) : nullptr;
40+
}
41+
42+
// members
43+
char* buffer; // 00
44+
std::uint32_t bufferSize; // 08
45+
std::uint32_t size; // 0C
46+
};
47+
static_assert(sizeof(CombatBehaviorStack) == 0x10);
48+
}

0 commit comments

Comments
 (0)