diff --git a/include/RE/B/BGSCameraShot.h b/include/RE/B/BGSCameraShot.h index a153d34f9..ce69174ad 100644 --- a/include/RE/B/BGSCameraShot.h +++ b/include/RE/B/BGSCameraShot.h @@ -1,5 +1,6 @@ #pragma once +#include "RE/B/BSResourceHandle.h" #include "RE/F/FormTypes.h" #include "RE/T/TESForm.h" #include "RE/T/TESImageSpaceModifiableForm.h" @@ -79,19 +80,19 @@ namespace RE void InitItemImpl() override; // 13 // members - CAMERA_SHOT_DATA data; // 58 - DATA - std::uint32_t pad84; // 84 - void* unk88; // 88 - smart ptr - void* unk90; // 90 - smart ptr - RefHandle unk98; // 98 - std::uint32_t unk9C; // 9C - void* unkA0; // A0 - smart ptr - NiPointer unkA8; // A8 - smart ptr - std::uint8_t unkB0; // B0 - bool unkB1; // B1 - std::uint16_t padB2; // B2 - std::uint32_t padB4; // B4 - void* unkB8; // B8 + CAMERA_SHOT_DATA data; // 58 - DATA + std::uint32_t pad84; // 84 + void* unk88; // 88 - smart ptr + void* unk90; // 90 - smart ptr + RefHandle unk98; // 98 + std::uint32_t unk9C; // 9C + NiPointer cameraNode; // A0 - smart ptr + NiPointer unkA8; // A8 - smart ptr + std::uint8_t unkB0; // B0 + bool unkB1; // B1 + std::uint16_t padB2; // B2 + std::uint32_t padB4; // B4 + ModelDBHandle cameraHandle; // B8 }; static_assert(sizeof(BGSCameraShot) == 0xC0); } diff --git a/include/RE/H/HighProcessData.h b/include/RE/H/HighProcessData.h index 17462e6f8..1786c15a7 100644 --- a/include/RE/H/HighProcessData.h +++ b/include/RE/H/HighProcessData.h @@ -5,6 +5,7 @@ #include "RE/B/BSFixedString.h" #include "RE/B/BSIntrusiveRefCounted.h" #include "RE/B/BSPointerHandle.h" +#include "RE/B/BSResourceHandle.h" #include "RE/B/BSSoundHandle.h" #include "RE/B/BSTHashMap.h" #include "RE/B/BSTList.h" @@ -298,7 +299,7 @@ namespace RE BSTSmartPointer greetTopic; // 360 std::uint32_t unk368; // 368 RefHandle unk36C; // 36C - void* unk370; // 370 + ModelDBHandle faceGenGeomHandle; // 370 std::uint64_t unk378; // 378 NiPointer healthBarNode; // 380 float unk388; // 388 diff --git a/include/RE/L/LockpickingMenu.h b/include/RE/L/LockpickingMenu.h index 5e784e487..9aec66344 100644 --- a/include/RE/L/LockpickingMenu.h +++ b/include/RE/L/LockpickingMenu.h @@ -1,5 +1,6 @@ #pragma once +#include "RE/B/BSResourceHandle.h" #include "RE/B/BSSoundHandle.h" #include "RE/B/BSTEvent.h" #include "RE/I/IMenu.h" @@ -45,8 +46,8 @@ namespace RE [[nodiscard]] static TESObjectREFR* GetTargetReference(); // members - void* lockDBHandle; // 048 - void* pickDBHandle; // 050 + ModelDBHandle lockModel; // 048 + ModelDBHandle pickModel; // 050 NiMatrix3 pickRotation; // 058 NiPoint3 lockRotCenter; // 07C NiControllerManager* lockController; // 088 diff --git a/include/RE/M/MistMenu.h b/include/RE/M/MistMenu.h index 74953252c..843b89f35 100644 --- a/include/RE/M/MistMenu.h +++ b/include/RE/M/MistMenu.h @@ -1,5 +1,6 @@ #pragma once +#include "RE/B/BSResourceHandle.h" #include "RE/I/IMenu.h" #include "RE/M/MenuEventHandler.h" #include "RE/N/NiColor.h" @@ -8,6 +9,7 @@ namespace RE { + class BSFadeNode; class BSLightingShaderProperty; class NiAVObject; class NiControllerManager; @@ -68,8 +70,8 @@ namespace RE std::uint32_t unk0A4; // 0A4 std::uint64_t unk0A8; // 0A8 NiPointer mistModel; // 0B0 - smart ptr - void* mistModelDBHandle; // 0B8 - void* loadScreenDBHandle; // 0C0 + ModelDBHandle mistModelHandle; // 0B8 + ModelDBHandle loadScreenModelHandle; // 0C0 NiPointer cameraPath; // 0C8 - parent of cameraPathNode NiPointer cameraPathNode; // 0D0 - smart ptr NiPointer cameraPathSequence; // 0D8 - smart ptr diff --git a/include/RE/S/ShaderReferenceEffect.h b/include/RE/S/ShaderReferenceEffect.h index c3dedac2f..3f9e7bc28 100644 --- a/include/RE/S/ShaderReferenceEffect.h +++ b/include/RE/S/ShaderReferenceEffect.h @@ -1,5 +1,6 @@ #pragma once +#include "RE/B/BSResourceHandle.h" #include "RE/B/BSSoundHandle.h" #include "RE/B/BSTArray.h" #include "RE/N/NiSmartPointer.h" @@ -72,8 +73,8 @@ namespace RE // members BSTArray textureRequests; // 048 - BSTArray> addonModels; // 060 - smart ptrs - BSTArray unk078; // 078 + BSTArray> addonObjects; // 060 - smart ptrs + BSTArray modelHandles; // 078 BSTArray particleShaders; // 090 BSTArray unk0A8; // 0A8 - smart ptrs BSSoundHandle soundHandle; // 0C0 diff --git a/include/RE/S/Sky.h b/include/RE/S/Sky.h index 3dd5a7264..6deea10dc 100644 --- a/include/RE/S/Sky.h +++ b/include/RE/S/Sky.h @@ -1,6 +1,7 @@ #pragma once #include "RE/B/BSPointerHandle.h" +#include "RE/B/BSResourceHandle.h" #include "RE/B/BSTArray.h" #include "RE/B/BSTList.h" #include "RE/B/BSTextureSet.h" @@ -82,7 +83,7 @@ namespace RE NiPointer root; // 008 NiPointer moonsRoot; // 010 NiPointer auroraRoot; // 018 - void* auroraDBHandle; // 020 + ModelDBHandle auroraModel; // 020 BGSLightingTemplate* extLightingOverride; // 028 ObjectRefHandle currentRoom; // 030 ObjectRefHandle previousRoom; // 034 diff --git a/include/RE/S/StatsMenu.h b/include/RE/S/StatsMenu.h index b4fab7549..db96462ab 100644 --- a/include/RE/S/StatsMenu.h +++ b/include/RE/S/StatsMenu.h @@ -1,6 +1,7 @@ #pragma once #include "RE/A/ActorValues.h" +#include "RE/B/BSResourceHandle.h" #include "RE/B/BSTArray.h" #include "RE/G/GFxValue.h" #include "RE/I/IMenu.h" @@ -18,11 +19,6 @@ namespace RE class NiNode; class StatsNode; - namespace BSResource - { - struct ID; - } - // menuDepth = 3 // flags = kPausesGame | kUsesMenuContext | kDisablePauseMenu | kRequiresUpdate | kCustomRendering // kUsesCursor if gamepad disabled @@ -40,6 +36,18 @@ namespace RE kTotalTrees = 18 }; + struct Models + { + enum Model : std::uint32_t + { + kSkydome, + kStars, + kLines, + kTotal + }; + }; + using Model = Models::Model; + struct UnkData { public: @@ -71,78 +79,76 @@ namespace RE bool ProcessButton(ButtonEvent* a_event) override; // 05 // members - NiCamera* unk040; // 040 - float horizontalVelocity; // 048 - std::uint32_t unk04C; // 04C - BSTArray skillTrees; // 050 - BSResource::ID* skydomeHash; // 068 - BSResource::ID* starsHash; // 070 - BSResource::ID* linesHash; // 078 - BSFadeNode* skydomeNode; // 080 - BSFadeNode* starsNode; // 088 - BSFadeNode* linesNode; // 090 - UnkData unk098[kTotalTrees]; // 098 - bool zoomed; // 1B8 - std::uint8_t unk1B9; // 1B9 - std::uint16_t unk1BA; // 1BA - bool scrolling; // 1BC - std::uint8_t unk1BD; // 1BD - std::uint16_t unk1BE; // 1BE - std::uint32_t selectedTree; // 1C0 - std::uint32_t unk1C4; // 1C4 - StatsNode* unk1C8; // 1C8 - std::uint32_t unk1D0; // 1D0 - std::uint32_t unk1D4; // 1D4 - std::uint32_t unk1D8; // 1D8 - std::uint32_t unk1DC; // 1DC - std::uint64_t unk1E0; // 1E0 - std::uint32_t unk1E8; // 1E8 - NiPoint3 skillsLookAt; // 1EC - NiPoint3 starCameraOffset; // 1F8 - NiPoint3 starLookAt; // 204 - std::uint64_t unk210; // 210 - std::uint64_t unk218; // 218 - std::uint64_t unk220; // 220 - std::uint64_t unk228; // 228 - std::uint64_t unk230; // 230 - std::uint64_t unk238; // 238 - float unk240; // 240 - float unk244; // 244 - float unk248; // 248 - float unk24C; // 24C - float unk250; // 250 - float unk254; // 254 - float unk258; // 258 - float unk25C; // 25C - float unk260; // 260 - float unk264; // 264 - float unk268; // 268 - float unk26C; // 26C - float unk270; // 270 - float unk274; // 274 - std::uint32_t unk278; // 278 - float unk27C; // 27C - float horizontalAcceleration; // 280 - std::uint32_t unk284; // 284 - NiNode* cameraPosition; // 288 - NiControllerSequence* cameraIntro; // 290 - NiControllerSequence* cameraOutro; // 298 - NiControllerSequence* idle; // 2A0 - NiControllerManager* unk2A8; // 2A8 - std::uint64_t unk2B0; // 2B0 - std::uint64_t unk2B8; // 2B8 - BSTArray unk2C0; // 2C0 - BSTArray unk2D8; // 2D8 - BSScaleformMovieLoadTask* unk2F0; // 2F0 - GFxValue unk2F8; // 2F8 - StatsMenuBaseInstance.BeastSkillHolder - std::uint32_t numSelectableTrees; // 310 - float unk314; // 314 - float unk318; // 318 - std::uint32_t flags; // 31C - std::uint8_t unk320; // 320 - std::uint8_t unk321; // 321 - std::uint16_t unk322; // 322 - std::uint32_t unk324; // 324 + NiCamera* unk040; // 040 + float horizontalVelocity; // 048 + std::uint32_t unk04C; // 04C + BSTArray skillTrees; // 050 + ModelDBHandle modelHandles[Model::kTotal]; // 068 + BSFadeNode* skydomeNode; // 080 + BSFadeNode* starsNode; // 088 + BSFadeNode* linesNode; // 090 + UnkData unk098[kTotalTrees]; // 098 + bool zoomed; // 1B8 + std::uint8_t unk1B9; // 1B9 + std::uint16_t unk1BA; // 1BA + bool scrolling; // 1BC + std::uint8_t unk1BD; // 1BD + std::uint16_t unk1BE; // 1BE + std::uint32_t selectedTree; // 1C0 + std::uint32_t unk1C4; // 1C4 + StatsNode* unk1C8; // 1C8 + std::uint32_t unk1D0; // 1D0 + std::uint32_t unk1D4; // 1D4 + std::uint32_t unk1D8; // 1D8 + std::uint32_t unk1DC; // 1DC + std::uint64_t unk1E0; // 1E0 + std::uint32_t unk1E8; // 1E8 + NiPoint3 skillsLookAt; // 1EC + NiPoint3 starCameraOffset; // 1F8 + NiPoint3 starLookAt; // 204 + std::uint64_t unk210; // 210 + std::uint64_t unk218; // 218 + std::uint64_t unk220; // 220 + std::uint64_t unk228; // 228 + std::uint64_t unk230; // 230 + std::uint64_t unk238; // 238 + float unk240; // 240 + float unk244; // 244 + float unk248; // 248 + float unk24C; // 24C + float unk250; // 250 + float unk254; // 254 + float unk258; // 258 + float unk25C; // 25C + float unk260; // 260 + float unk264; // 264 + float unk268; // 268 + float unk26C; // 26C + float unk270; // 270 + float unk274; // 274 + std::uint32_t unk278; // 278 + float unk27C; // 27C + float horizontalAcceleration; // 280 + std::uint32_t unk284; // 284 + NiNode* cameraPosition; // 288 + NiControllerSequence* cameraIntro; // 290 + NiControllerSequence* cameraOutro; // 298 + NiControllerSequence* idle; // 2A0 + NiControllerManager* unk2A8; // 2A8 + std::uint64_t unk2B0; // 2B0 + std::uint64_t unk2B8; // 2B8 + BSTArray unk2C0; // 2C0 + BSTArray unk2D8; // 2D8 + BSScaleformMovieLoadTask* unk2F0; // 2F0 + GFxValue unk2F8; // 2F8 - StatsMenuBaseInstance.BeastSkillHolder + std::uint32_t numSelectableTrees; // 310 + float screenHeight; // 314 + float screenWidth; // 318 + std::uint32_t flags; // 31C + std::uint8_t unk320; // 320 + std::uint8_t unk321; // 321 + std::uint16_t unk322; // 322 + std::uint32_t unk324; // 324 }; static_assert(sizeof(StatsMenu) == 0x328); }