Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update MapMenu runtime-data members #94

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions cmake/sourcelist.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -1184,6 +1184,7 @@ set(SOURCES
include/RE/M/MapInputHandler.h
include/RE/M/MapLookHandler.h
include/RE/M/MapMenu.h
include/RE/M/MapMenuMarker.h
include/RE/M/MapMoveHandler.h
include/RE/M/MapZoomHandler.h
include/RE/M/MarkerUsedData.h
Expand Down
33 changes: 19 additions & 14 deletions include/RE/L/LocalMapMenu.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ namespace RE
{
class BSShaderAccumulator;
class NiNode;
struct MapMenuMarker;

struct LocalMapMenu
{
Expand Down Expand Up @@ -111,12 +112,16 @@ namespace RE

struct RUNTIME_DATA
{
BSScaleformExternalTexture unk303A0; // 00
GFxValue unk303B8; // 18
GFxValue unk303D0; // 30
void* unk303E8; // 48
BSTSmartPointer<InputHandler> unk303F0; // 50
std::uint64_t unk303F8; // 58
BSScaleformExternalTexture unk303A0; // 00
GFxValue localMapMovie; // 18
GFxValue mapMovie; // 30
void* unk303E8; // 48
BSTSmartPointer<InputHandler> unk303F0; // 50
std::int32_t selectedMarker; // 58
bool showingMap; // 5C
bool dragging; // 5D
bool controlsReady; // 5E
std::uint8_t unk303FF; // 5F
};
static_assert(sizeof(RUNTIME_DATA) == 0x60);

Expand All @@ -131,14 +136,14 @@ namespace RE
}

// members
BSTArray<void*> unk00000; // 00000
GFxValue unk00018; // 00018
float unk00030; // 00030
float unk00034; // 00034
float unk00038; // 00038
float unk0003C; // 0003C
LocalMapCullingProcess localCullingProcess; // 00040
RUNTIME_DATA runtimeData; // 303A0, 30418
BSTArray<MapMenuMarker> mapMarkers; // 00000
GFxValue unk00018; // 00018
float unk00030; // 00030
float unk00034; // 00034
float unk00038; // 00038
float unk0003C; // 0003C
LocalMapCullingProcess localCullingProcess; // 00040
RUNTIME_DATA runtimeData; // 303A0, 30418
#if !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
std::uint32_t unk30478; // 30478
std::uint32_t pad3047C; // 3047C
Expand Down
58 changes: 11 additions & 47 deletions include/RE/M/MapMenu.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ namespace RE
class MapZoomHandler;
class MenuOpenCloseEvent;
class TESWorldSpace;
struct MapMenuMarker;

// menuDepth = 3
// flags = kPausesGame | kUsesCursor | kRendersOffscreenTargets | kCustomRendering
Expand All @@ -40,45 +41,6 @@ namespace RE
inline static constexpr auto RTTI = RTTI_MapMenu;
constexpr static std::string_view MENU_NAME = "MapMenu";

struct Unk30470Entry
{
TESFullName* unk00;
std::uint32_t unk08;
std::uint32_t unk0C;
TESForm* unk10;
std::uint32_t unk18;
std::uint32_t unk1C;
std::uint32_t unk20;
std::uint32_t unk24;
std::uint32_t unk28;
std::uint32_t unk2C;
std::uint32_t unk30;
std::uint32_t unk34;
};
static_assert(sizeof(Unk30470Entry) == 0x38);

struct Unk30488Entry
{
std::uint32_t unk00;
std::uint32_t unk04;
std::uint32_t unk08;
std::uint32_t unk0C;
const char* label;
std::uint32_t unk18;
std::uint32_t unk1C;
std::uint32_t unk20;
std::uint32_t unk24;
std::uint32_t unk28;
std::uint32_t unk2C;
std::uint32_t unk30;
std::uint32_t unk34;
std::uint32_t unk38;
std::uint32_t unk3C;
std::uint32_t unk40;
std::uint32_t unk44;
};
static_assert(sizeof(Unk30488Entry) == 0x48);

struct RUNTIME_DATA
{
#define RUNTIME_DATA_CONTENT \
Expand All @@ -101,19 +63,21 @@ namespace RE
#define RUNTIME_DATA2_CONTENT \
RefHandle unk30460; /* 000 */ \
NiPoint3 playerMarkerPosition; /* 004 */ \
BSTArray<Unk30470Entry*> unk30470; /* 010 */ \
BSTArray<Unk30488Entry*> unk30488; /* 028 */ \
BSTArray<MapMenuMarker> mapMarkers; /* 010 */ \
BSTArray<GFxValue> markerData; /* 028 */ \
MapCamera camera; /* 040 */ \
std::uint64_t unk30530; /* 0D0 */ \
TESWorldSpace* worldSpace; /* 0D8 */ \
GFxValue unk30540; /* 0E0 */ \
std::uint64_t unk30558; /* 0F8 */ \
std::uint64_t unk30560; /* 100 */ \
std::uint64_t unk30568; /* 108 */ \
std::uint32_t unk30570; /* 110 */ \
GFxValue mapMovie; /* 0E0 */ \
std::int32_t selectedMarker; /* 0F8 */ \
NiPoint3 cameraPickOrigin; /* 0FC */ \
NiPoint3 cameraPickDirection; /* 108 */ \
BSSoundHandle unk30574; /* 114 */ \
std::uint64_t unk30580; /* 120 */ \
std::uint64_t unk30588; /* 128 */ \
std::uint32_t unk30588; /* 128 */ \
bool controlsReady; /* 12C */ \
std::uint8_t unk3058D; /* 12D */ \
std::uint16_t unk3058E; /* 12E */ \
std::uint64_t unk30590; /* 130 */
RUNTIME_DATA2_CONTENT
};
Expand Down
25 changes: 25 additions & 0 deletions include/RE/M/MapMenuMarker.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#pragma once

#include "RE/T/TESForm.h"
#include "RE/T/TESFullName.h"

namespace RE
{
struct MapMenuMarker
{
TESFullName* fullName; // 00
RefHandle ref; // 08
std::uint32_t pad0C; // 0C
const char* customMarker; // 10
std::uint32_t type; // 18
std::uint32_t door; // 1C
std::int32_t index; // 20
std::uint32_t pad24; // 24
TESForm* form; // 28
std::uint8_t unk30; // 30
std::uint8_t pad31; // 31
std::uint16_t pad32; // 32
std::uint32_t pad34; // 34
};
static_assert(sizeof(MapMenuMarker) == 0x38);
}
1 change: 1 addition & 0 deletions include/RE/Skyrim.h
Original file line number Diff line number Diff line change
Expand Up @@ -1186,6 +1186,7 @@
#include "RE/M/MapInputHandler.h"
#include "RE/M/MapLookHandler.h"
#include "RE/M/MapMenu.h"
#include "RE/M/MapMenuMarker.h"
#include "RE/M/MapMoveHandler.h"
#include "RE/M/MapZoomHandler.h"
#include "RE/M/MarkerUsedData.h"
Expand Down