Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
4d3375a
chore: Library update.
Jul 31, 2026
360d713
maintenance
FlenarnDev Jul 31, 2026
432feb4
chore: Fix compile and missed file.
Jul 31, 2026
564fec7
fix
Jul 31, 2026
1efad3d
feat: More ExtraData.
Jul 31, 2026
2c840a4
maintenance
FlenarnDev Jul 31, 2026
a4271a0
Merge branch 'FalloutCascadia:main' into main
FlenarnDev Aug 1, 2026
dcdaba7
fix: Cleanup.
Aug 1, 2026
03fc249
Merge branch 'main' of https://github.com/flenarndev/commonlibf4
Aug 1, 2026
5e8aef4
Merge branch 'FalloutCascadia:main' into main
FlenarnDev Aug 1, 2026
97702ce
Merge branch 'FalloutCascadia:main' into main
FlenarnDev Aug 2, 2026
f7ce347
feat: HandlePositionPlayerRequest
Aug 2, 2026
24624ed
Merge branch 'main' of https://github.com/flenarndev/commonlibf4
Aug 2, 2026
e9bc99d
chore: Update CommonLib-Shared
Aug 2, 2026
cdbef98
chore: Update CommonLib-Shared.
Aug 2, 2026
9c89384
chore: Misc. RE work.
Aug 2, 2026
d231b73
fix: Remove duplicate ID entry.
Aug 2, 2026
adef562
maintenance
FlenarnDev Aug 2, 2026
a6526c0
fix: SetLinkedRef declaration.
Aug 2, 2026
8a45bab
fix: Corrections from review.
Aug 5, 2026
01ccc49
Merge branch 'main' into main
FalloutCascadia Aug 5, 2026
bcaedf7
Merge branch 'FalloutCascadia:main' into main
FlenarnDev Aug 7, 2026
bbd4c67
fix: SceneGraph members now public.
Aug 7, 2026
bc179d4
Merge branch 'main' of https://github.com/flenarndev/commonlibf4
Aug 7, 2026
757165a
Merge branch 'FalloutCascadia:main' into main
FlenarnDev Aug 7, 2026
97bbc4a
Merge branch 'main' of https://github.com/flenarndev/commonlibf4
Aug 7, 2026
5216ec6
feat: Runtime support for 1.11.240.
Aug 22, 2026
00e1118
Merge branch 'main' of https://github.com/flenarndev/commonlibf4
Aug 22, 2026
ab53ab2
fix: Missing EMPLACE_VTABLEs
Aug 22, 2026
4af1324
feat: Misc RE, started going down from `QuestTargetArray`.
Aug 29, 2026
25c91dd
maintenance
FlenarnDev Aug 29, 2026
d570583
fix: Declare members of `REF_DATA` public.
FlenarnDev Sep 1, 2026
4dfc2b3
fix: Appease compiler gods.
Sep 1, 2026
5001426
feat: Add `TESQuest:GetActive`.
Sep 1, 2026
292712b
feat: `TESObjectREFR:HasLocationRefType`.
Sep 2, 2026
6acc367
Merge branch 'FalloutCascadia:main' into main
FlenarnDev Sep 3, 2026
8b02c29
feat: ExtraRadius
Sep 3, 2026
d8a3c3e
maintenance
FlenarnDev Sep 3, 2026
d69c361
feat: Another function, another day
Sep 4, 2026
fc284e4
feat: `PipboyMapData::UpdateQuestMarkers` declared.
Sep 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions include/RE/B/BGSCharacterTint.h
Original file line number Diff line number Diff line change
Expand Up @@ -150,14 +150,15 @@ namespace RE
// Members
Entry* templateEntry; // 08
std::uint16_t idLink; // 10
std::uint8_t tingingValue; // 12
std::uint8_t tintingValue; // 12
};
static_assert(sizeof(Entry) == 0x18);

class Entries
{
public:
BSTArray<Entry*> entriesA;
// members
BSTArray<Entry*> entriesA; // 00
};
static_assert(sizeof(Entries) == 0x18);

Expand Down
19 changes: 19 additions & 0 deletions include/RE/B/BSActorPathingMessage.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#pragma once

#include "RE/B/BSPathingRequest.h"
#include "RE/B/BSPathingSolution.h"
#include "RE/B/BSTSmartPointer.h"
#include "RE/P/PATHING_MESSAGE_TYPE.h"

namespace RE
{
class BSActorPathingMessage
{
public:
// members
PATHING_MESSAGE_TYPE type; // 00
BSTSmartPointer<BSPathingRequest> request; // 08
BSTSmartPointer<BSPathingSolution> solution; // 10
};
static_assert(sizeof(BSActorPathingMessage) == 0x18);
}
19 changes: 19 additions & 0 deletions include/RE/B/BSActorPathingMessageQueue.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#pragma once

#include "RE/B/BSActorPathingMessage.h"
#include "RE/B/BSIntrusiveRefCounted.h"
#include "RE/B/BSSpinLock.h"
#include "RE/B/BSTArray.h"

namespace RE
{
class BSActorPathingMessageQueue :
public BSIntrusiveRefCounted
{
public:
// members
BSTSmallArray<BSActorPathingMessage, 1> messages; // 008
BSSpinLock messagesLock; // 030
};
static_assert(sizeof(BSActorPathingMessageQueue) == 0x38);
}
49 changes: 49 additions & 0 deletions include/RE/B/BSPathingActorAttributes.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#pragma once

#include "RE/B/BSPathingLockData.h"
#include "RE/B/BSTSmartPointer.h"

namespace RE
{
class BSPathingActorAttributes
{
public:
enum ACTOR_SHAPE_TYPE : std::uint32_t
{
kPoint = 0x0,
kBiped = 0x1,
kQuadruped = 0x2
};

enum LOCK_HANDLING_TYPE : std::uint32_t
{
kIgnore = 0x4,
kCantOpen = 0x8,
kUseLockData = 0xC
};

enum ATTRIBUTE : std::uint32_t
{
kWaitIfPlayerWaits = 0x80
};

enum TRAVERSAL_TYPE : std::uint32_t
{
kCanWalk = 0x1,
kCanSwim = 0x2,
kCanFly = 0x4,
kCanFloat = 0x8,
kIsLarge = 0x10,
kCanJump = 0x20
};

// members
float radius; // 00
float height; // 04
float floatHeight; // 08
BSTSmartPointer<BSPathingLockData> lockData; // 10
std::uint32_t data; // 18
std::uint8_t traversalFlags; // 1C
};
static_assert(sizeof(BSPathingActorAttributes) == 0x20);
}
14 changes: 14 additions & 0 deletions include/RE/B/BSPathingAvoidNodeArray.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#pragma once

#include "RE/B/BSPathingAvoidNode.h"
#include "RE/B/BSTArrayRefCounted.h"

namespace RE
{
class BSPathingAvoidNodeArray :
public BSTArrayRefCounted<BSPathingAvoidNode, BSTArrayHeapAllocator> // 00
{
public:
};
static_assert(sizeof(BSPathingAvoidNodeArray) == 0x20);
}
35 changes: 35 additions & 0 deletions include/RE/B/BSPathingCell.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#pragma once

#include "RE/B/BSIntrusiveRefCounted.h"
#include "RE/B/BSTSmartPointer.h"

namespace RE
{
class bhkWorld;
class BSPathingNumericIDVisitor;
class BSPathingSpace;
class BSPathingStreamRead;
class BSPathingStreamWrite;

class __declspec(novtable) BSPathingCell :
public BSIntrusiveRefCounted // 00
{
public:
static constexpr auto RTTI{ RTTI::BSPathingCell };
static constexpr auto VTABLE{ VTABLE::BSPathingCell };

virtual ~BSPathingCell(); // 00
virtual std::uint32_t GetType(); // 01
virtual void Write(BSPathingStreamWrite* a_dst); // 02
virtual void Read(BSPathingStreamRead* a_src); // 03
virtual void FixupNumericID(BSPathingNumericIDVisitor* a_visitor); // 04
virtual bool IsEqual(const BSTSmartPointer<BSPathingCell>* a_other); // 05
virtual void GetSpace(BSTSmartPointer<BSPathingSpace>* a_spaceOut); // 06
virtual bhkWorld* GetBhkWorld(); // 07
virtual bool QValid(); // 08
virtual bool QAttached(); // 09
virtual bool QLoaded(); // 0A
virtual bool IsInSameSpace(const BSTSmartPointer<BSPathingCell>* a_other); // 0B
};
static_assert(sizeof(BSPathingCell) == 0x10);
}
1 change: 1 addition & 0 deletions include/RE/B/BSPathingLocation.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
namespace RE
{
class BSNavmeshInfo;
class BSPathingCell;

class BSPathingLocation
{
Expand Down
28 changes: 28 additions & 0 deletions include/RE/B/BSPathingLockData.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#pragma once

#include "RE/B/BSIntrusiveRefCounted.h"
#include "RE/B/BSTSmartPointer.h"

namespace RE
{
class BSPathingDoor;
class BSPathingStreamRead;
class BSPathingStreamWrite;

class __declspec(novtable) BSPathingLockData :
public BSIntrusiveRefCounted
{
public:
static constexpr auto RTTI{ RTTI::BSPathingLockData };
static constexpr auto VTABLE{ VTABLE::BSPathingLockData };

virtual ~BSPathingLockData(); // 00
virtual std::uint32_t GetType(); // 01
virtual bool CanTraverse(const BSTSmartPointer<BSPathingDoor>* a_door, float* a_arg2, bool* a_arg3); // 02
virtual bool CanTraverse(const BSTSmartPointer<BSPathingDoor>* a_door, float* a_arg2); // 03
virtual bool CanTraverse(const BSTSmartPointer<BSPathingDoor>* a_door); // 04
virtual void Write(BSPathingStreamWrite* a_dst); // 05
virtual void Read(BSPathingStreamRead* a_src); // 06
};
static_assert(sizeof(BSPathingLockData) == 0x10);
}
18 changes: 18 additions & 0 deletions include/RE/B/BSPathingNode.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#pragma once

#include "RE/B/BSPathingLocation.h"
#include "RE/B/BSTSmartPointer.h"
#include "RE/M/MovementMessage.h"
#include "RE/N/NiPoint3.h"

namespace RE
{
class BSPathingNode
{
public:
BSPathingLocation location; // 000
BSTSmartPointer<MovementMessage, BSTSmartPointerIntrusiveRefCount> actionAtNode; // 030
NiPoint3 tangent; // 038
};
static_assert(sizeof(BSPathingNode) == 0x48);
}
52 changes: 52 additions & 0 deletions include/RE/B/BSPathingRequest.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#pragma once

#include "RE/B/BSIntrusiveRefCounted.h"
#include "RE/B/BSPathingActorAttributes.h"
#include "RE/B/BSPathingGoal.h"
#include "RE/B/BSPathingRestrictions.h"
#include "RE/B/BSPathingSearchParameters.h"
#include "RE/B/BSPathingStart.h"
#include "RE/B/BSTArray.h"
#include "RE/B/BSTSmartPointer.h"
#include "RE/M/MeanderSettingsData.h"
#include "RE/M/MovementActorAvoidanceParameters.h"

namespace RE
{
class BSPathingStreamRead;
class BSPathingStreamWrite;
class IDebugText;
class IMovementParameters;

class __declspec(novtable) BSPathingRequest :
public BSIntrusiveRefCounted // 0008
{
public:
static constexpr auto RTTI{ RTTI::BSPathingRequest };
static constexpr auto VTABLE{ VTABLE::BSPathingRequest };

virtual ~BSPathingRequest(); // 00
virtual std::uint32_t GetType(); // 01
virtual void CopyTo(BSPathingRequest* a_dst); // 02
virtual void Write(BSPathingStreamWrite* a_dst); // 03
virtual void Read(BSPathingStreamRead* a_src); // 04
virtual void CheckValid(); // 05
virtual void PrintDebugText(IDebugText* a_debugText); // 06
virtual bool UpdateRequest(); // 07

// members
BSPathingStart start; // 0010
BSPathingGoal goal; // 0048
BSPathingRestrictions restrictions; // 0098
BSPathingSearchParameters searchParameters; // 00B0
BSPathingActorAttributes actorAttributes; // 00C0
MovementActorAvoidanceParameters avoidanceParameters; // 00E0
BSTSmartPointer<IMovementParameters, BSTSmartPointerIntrusiveRefCount> defaultParameters; // 0100
MeanderSettingsData meanderSettings; // 0108
BSTArray<BSPathingStart> optionalStartArray; // 0120
bool shouldMotionCorrectStartIdle; // 0138
bool requiresPathStartIdle; // 0139
bool disablePathEndIdle; // 013A
};
static_assert(sizeof(BSPathingRequest) == 0x140);
}
16 changes: 16 additions & 0 deletions include/RE/B/BSPathingRestrictions.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#pragma once

#include "RE/B/BSPathingAvoidNodeArray.h"
#include "RE/B/BSPathingSearchAreaRestrictions.h"
#include "RE/N/NiPointer.h"

namespace RE
{
class BSPathingRestrictions
{
public:
NiPointer<BSPathingAvoidNodeArray> avoidNodeArray; // 00
BSPathingSearchAreaRestrictions areaRestrictions; // 08
};
static_assert(sizeof(BSPathingRestrictions) == 0x18);
}
14 changes: 14 additions & 0 deletions include/RE/B/BSPathingSearchAreaRestrictions.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#pragma once

#include "RE/N/NiPoint3.h"

namespace RE
{
class BSPathingSearchAreaRestrictions
{
public:
NiPoint3 center; // 00
float radius; // 0C
};
static_assert(sizeof(BSPathingSearchAreaRestrictions) == 0x10);
}
29 changes: 29 additions & 0 deletions include/RE/B/BSPathingSearchParameters.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#pragma once

namespace RE
{
class BSPathingSearchParameters
{
public:
enum Flags : std::uint16_t
{
kAllowIncompletePath = 0x1,
kGoDirectIfPathingFails = 0x2,
kIgnoreSmoothingIfFails = 0x4,
kUsePrefferedPath = 0x8,
kRequiresHavok = 0x10,
kAvoidPreferredPath = 0x20,
kMustQueue = 0x40,
kCanShortcut = 0x80,
kAllowUnattachedCell = 0x100,
kProcessSynchronously = 0x200,
kResolveGoalToClosest = 0x400
};

float preferredCostFactor; // 00
float tangentSmoothingFactor; // 04
std::uint16_t retryCount; // 08
REX::TEnumSet<Flags, std::uint16_t> flags; // 0A
};
static_assert(sizeof(BSPathingSearchParameters) == 0x0C);
}
23 changes: 23 additions & 0 deletions include/RE/B/BSPathingSolution.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#pragma once

#include "RE/B/BSPathingNode.h"
#include "RE/B/BSTArray.h"
#include "RE/B/BSVirtualPathingNode.h"

namespace RE
{
class BSPathingSolution :
public BSIntrusiveRefCounted // 00
{
public:
// members
BSTSmallArray<BSVirtualPathingNode, 2> virtualPathingNodes; // 008
std::int32_t firstLoadedVirtualNodeIndex; // 088
std::int32_t lastLoadedVirtualNodeIndex; // 08C
BSTArray<BSPathingNode> currentPathingNodes; // 090
float goalRadius; // 0A8
bool incompletePath; // 0AC
bool requestGoalUnused; // 0AD
};
static_assert(sizeof(BSPathingSolution) == 0xB0);
}
15 changes: 15 additions & 0 deletions include/RE/B/BSTArrayRefCounted.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#pragma once

#include "RE/B/BSIntrusiveRefCounted.h"
#include "RE/B/BSTArray.h"

namespace RE
{
template <class T, class Allocator = BSTArrayHeapAllocator>
class alignas(0x8) BSTArrayRefCounted :
public BSTArray<T, Allocator>, // 00
public BSIntrusiveRefCounted // 18
{
public:
};
}
18 changes: 18 additions & 0 deletions include/RE/B/BSVirtualPathingNode.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#pragma once

#include "RE/B/BSPathingLocation.h"
#include "RE/B/BSTSmartPointer.h"
#include "RE/M/MovementMessage.h"
#include "RE/N/NiPoint3.h"

namespace RE
{
class BSVirtualPathingNode
{
public:
// members
BSPathingLocation location; // 000
BSTSmartPointer<MovementMessage, BSTSmartPointerIntrusiveRefCount> actionAtNode; // 030
};
static_assert(sizeof(BSVirtualPathingNode) == 0x38);
}
2 changes: 1 addition & 1 deletion include/RE/E/EXTRA_DATA_TYPE.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ namespace RE
kImageSpace, //
kNavmeshPortal, //
kModelSwap, //
kRadius, //
kRadius, // ExtraRadius
kRadiation, //
kFactionChanges, // ExtraFactionChanges
kDismemberedLimbs, //
Expand Down
Loading