diff --git a/include/RE/L/LevelUpMenu.h b/include/RE/L/LevelUpMenu.h index 9841e0276..666f5e820 100644 --- a/include/RE/L/LevelUpMenu.h +++ b/include/RE/L/LevelUpMenu.h @@ -1,6 +1,7 @@ #pragma once #include "RE/I/IMenu.h" +#include "RE/I/IMessageBoxCallback.h" namespace RE { @@ -14,16 +15,33 @@ namespace RE inline static constexpr auto RTTI = RTTI_LevelUpMenu; constexpr static std::string_view MENU_NAME = "LevelUp Menu"; + class ConfirmLevelUpAttributeCallback : public IMessageBoxCallback + { + public: + inline static constexpr auto RTTI = RTTI___ConfirmLevelUpAttributeCallback; + inline static constexpr auto VTABLE = VTABLE___ConfirmLevelUpAttributeCallback; + + ~ConfirmLevelUpAttributeCallback() override; // 00 + + // override (IMessageBoxCallback) + void Run(Message a_msg) override; // 01 + + // members + LevelUpMenu* menu; // 10 + RE::ActorValue actorValue; // 18 + }; + static_assert(sizeof(ConfirmLevelUpAttributeCallback) == 0x20); + ~LevelUpMenu() override; // 00 // override (IMenu) void Accept(CallbackProcessor* a_cbReg) override; // 01 // members - bool unk30; // 30 - std::uint8_t pad31; // 31 - std::uint16_t pad32; // 32 - std::uint32_t pad34; // 34 + bool playerLeveled; // 30 + std::uint8_t pad31; // 31 + std::uint16_t pad32; // 32 + std::uint32_t pad34; // 34 }; static_assert(sizeof(LevelUpMenu) == 0x38); } diff --git a/include/RE/M/MessageBoxData.h b/include/RE/M/MessageBoxData.h index f1ad8a420..7a5b0eebf 100644 --- a/include/RE/M/MessageBoxData.h +++ b/include/RE/M/MessageBoxData.h @@ -25,16 +25,16 @@ namespace RE } // members - BSString bodyText; // 10 - BSTArray buttonText; // 20 - std::uint32_t unk38; // 38 - std::int32_t unk3C; // 3C - BSTSmartPointer callback; // 40 - std::uint32_t unk48; // 48 - std::uint8_t unk4C; // 4C - std::uint8_t unk4D; // 4D - std::uint8_t unk4E; // 4E - std::uint8_t unk4F; // 4F + BSString bodyText; // 10 + BSTArray buttonText; // 20 + std::uint32_t type; // 38 - some sort of identifier ranging from 0-29, being 25 the one with the "highest priority" + std::int32_t cancelOptionIndex; // 3C + BSTSmartPointer callback; // 40 + std::uint32_t menuDepth; // 48 + std::uint8_t optionIndexOffset; // 4C + bool useHtml; // 4D + bool verticalButtons; // 4E + bool isCancellable; // 4F }; static_assert(sizeof(MessageBoxData) == 0x50); }