forked from Ryan-rsm-McKenzie/CommonLibSSE
-
Notifications
You must be signed in to change notification settings - Fork 32
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #144 from Jonahex/ThinkingWithPortals
feat: portals stuff RE.
- Loading branch information
Showing
12 changed files
with
347 additions
and
47 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
#pragma once | ||
|
||
#include "RE/B/BSTArray.h" | ||
#include "RE/N/NiFrustumPlanes.h" | ||
#include "RE/N/NiPoint3.h" | ||
|
||
namespace RE | ||
{ | ||
class NiCamera; | ||
|
||
class BSCompoundFrustum | ||
{ | ||
public: | ||
// members | ||
BSTArray<void*> unk00; // 00 | ||
BSTArray<void*> unk18; // 18 | ||
NiFrustumPlanes frustumPlanes; // 30 | ||
NiPoint3 unkA0; // A0 | ||
NiCamera* camera; // B0 | ||
uint32_t unkB8; // B8 | ||
uint32_t unkBC; // BC | ||
uint32_t unkC0; // C0 | ||
uint16_t unkC4; // C4 | ||
}; | ||
static_assert(sizeof(BSCompoundFrustum) == 0xC8); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
#pragma once | ||
|
||
#include "RE/B/BSCompoundFrustum.h" | ||
#include "RE/B/BSOcclusionShape.h" | ||
#include "RE/N/NiPoint2.h" | ||
|
||
namespace RE | ||
{ | ||
class BSOcclusionBox : public BSOcclusionShape | ||
{ | ||
public: | ||
inline static constexpr auto RTTI = RTTI_BSOcclusionBox; | ||
inline static constexpr auto Ni_RTTI = NiRTTI_BSOcclusionBox; | ||
inline static constexpr auto VTABLE = VTABLE_BSOcclusionBox; | ||
|
||
~BSOcclusionBox() override; // 00 | ||
|
||
// override (BSOcclusionShape) | ||
const NiRTTI* GetRTTI() const override; // 02 | ||
NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17 | ||
bool IsOcclusionPlane() const override; // 25 | ||
bool IsOcclusionBox() const override; // 25 | ||
|
||
// members | ||
NiPoint3 size; // 048 | ||
NiFrustumPlanes frustumPlanes[2]; // 054 | ||
uint64_t unk138; // 138 | ||
uint64_t unk140; // 140 | ||
uint64_t unk148; // 148 | ||
uint64_t unk150; // 150 | ||
uint64_t unk158; // 158 | ||
uint64_t unk160; // 160 | ||
uint64_t unk168; // 168 | ||
uint64_t unk170; // 170 | ||
uint64_t unk178; // 178 | ||
uint64_t unk180; // 180 | ||
uint64_t unk188; // 188 | ||
uint64_t unk190; // 190 | ||
uint64_t unk198; // 198 | ||
uint64_t unk1A0; // 1A0 | ||
uint64_t unk1A8; // 1A8 | ||
uint64_t unk1B0; // 1B0 | ||
uint64_t unk1B8; // 1B8 | ||
uint64_t unk1C0; // 1C0 | ||
uint64_t unk1C8; // 1C8 | ||
uint64_t unk1D0; // 1D0 | ||
uint64_t unk1D8; // 1D8 | ||
uint64_t unk1E0; // 1E0 | ||
}; | ||
static_assert(sizeof(BSOcclusionBox) == 0x1E8); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
#pragma once | ||
|
||
#include "RE/B/BSCompoundFrustum.h" | ||
#include "RE/B/BSOcclusionShape.h" | ||
#include "RE/N/NiPoint2.h" | ||
|
||
namespace RE | ||
{ | ||
class BSOcclusionPlane : public BSOcclusionShape | ||
{ | ||
public: | ||
inline static constexpr auto RTTI = RTTI_BSOcclusionPlane; | ||
inline static constexpr auto Ni_RTTI = NiRTTI_BSOcclusionPlane; | ||
inline static constexpr auto VTABLE = VTABLE_BSOcclusionPlane; | ||
|
||
~BSOcclusionPlane() override; // 00 | ||
|
||
// override (BSOcclusionShape) | ||
const NiRTTI* GetRTTI() const override; // 02 | ||
NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17 | ||
bool IsOcclusionPlane() const override; // 25 | ||
bool IsOcclusionBox() const override; // 25 | ||
|
||
// members | ||
NiPoint2 size; // 48 | ||
BSCompoundFrustum frustum; // 50 | ||
}; | ||
static_assert(sizeof(BSOcclusionPlane) == 0x118); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
#pragma once | ||
|
||
#include "RE/N/NiMatrix3.h" | ||
#include "RE/N/NiObject.h" | ||
#include "RE/N/NiPoint3.h" | ||
|
||
namespace RE | ||
{ | ||
class BSOcclusionShape : public NiObject | ||
{ | ||
public: | ||
inline static constexpr auto RTTI = RTTI_BSOcclusionShape; | ||
inline static constexpr auto Ni_RTTI = NiRTTI_BSOcclusionShape; | ||
inline static constexpr auto VTABLE = VTABLE_BSOcclusionShape; | ||
|
||
~BSOcclusionShape() override; // 00 | ||
|
||
// override (NiObject) | ||
const NiRTTI* GetRTTI() const override; // 02 | ||
NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17 | ||
|
||
// add | ||
virtual bool IsOcclusionPlane() const = 0; // 25 | ||
virtual bool IsOcclusionBox() const = 0; // 25 | ||
|
||
// members | ||
NiPoint3 translation; // 10 | ||
NiMatrix3 rotation; // 1C | ||
float unk40; // 40 | ||
bool unk44; // 44 | ||
}; | ||
static_assert(sizeof(BSOcclusionShape) == 0x48); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
#pragma once | ||
|
||
#include "RE/B/BSCullingProcess.h" | ||
|
||
namespace RE | ||
{ | ||
class BSShaderAccumulator; | ||
|
||
class BSParabolicCullingProcess : public BSCullingProcess | ||
{ | ||
public: | ||
inline static constexpr auto RTTI = RTTI_BSParabolicCullingProcess; | ||
inline static constexpr auto VTABLE = VTABLE_BSParabolicCullingProcess; | ||
|
||
// override (BSCullingProcess) | ||
const NiRTTI* GetRTTI() const override; // 00 | ||
|
||
~BSParabolicCullingProcess() override; // 15 | ||
|
||
virtual void Process1(NiAVObject* a_object, std::uint32_t a_arg2) override; // 16 | ||
virtual void Process2(const NiCamera* a_camera, NiAVObject* a_scene, NiVisibleArray* a_visibleSet) override; // 17 | ||
virtual void AppendNonAccum(NiAVObject& a_object) override; // 19 | ||
virtual bool TestBaseVisibility1(BSMultiBound& a_bound) override; // 1A | ||
virtual bool TestBaseVisibility2(BSOcclusionPlane& a_bound) override; // 1B | ||
[[nodiscard]] virtual bool TestBaseVisibility3(const NiBound& a_bound) const override; // 1C | ||
|
||
float unk301F8; // 301F8 | ||
NiPointer<BSShaderAccumulator> backHemisphereAccumulator; // 30200 | ||
NiPlane equatorialPlane; // 30208 | ||
NiPoint3 lightPosition; // 30218 | ||
float lightRadius; // 30224 | ||
NiPointer<NiCamera> lightCamera; // 30228 | ||
}; | ||
static_assert(sizeof(BSParabolicCullingProcess) == 0x30230); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
#pragma once | ||
|
||
#include "RE/B/BSOcclusionPlane.h" | ||
|
||
namespace RE | ||
{ | ||
class BSMultiBoundRoom; | ||
class BSPortalSharedNode; | ||
|
||
class BSPortal : public BSOcclusionPlane | ||
{ | ||
public: | ||
inline static constexpr auto RTTI = RTTI_BSPortal; | ||
inline static constexpr auto Ni_RTTI = NiRTTI_BSPortal; | ||
inline static constexpr auto VTABLE = VTABLE_BSPortal; | ||
|
||
~BSPortal() override; // 00 | ||
|
||
// override (BSOcclusionPlane) | ||
const NiRTTI* GetRTTI() const override; // 02 | ||
NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17 | ||
|
||
// members | ||
BSMultiBoundRoom* entranceRoom; // 118 | ||
BSMultiBoundRoom* exitRoom; // 120 | ||
NiPointer<BSPortalSharedNode> portalSharedNode; // 128 | ||
}; | ||
static_assert(sizeof(BSPortal) == 0x130); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.