#pragma once #include "RE/B/BSTEvent.h" #include "RE/G/GameMenuBase.h" namespace RE { class MenuModeChangeEvent; class MessageBoxData; class __declspec(novtable) MessageBoxMenu : public GameMenuBase, // 00 public BSTEventSink // E0 { public: static constexpr auto RTTI{ RTTI::MessageBoxMenu }; static constexpr auto VTABLE{ VTABLE::MessageBoxMenu }; static constexpr auto MENU_NAME{ "MessageBoxMenu"sv }; // override virtual void Call(const Params&) override; // 01 virtual void MapCodeObjectFunctions() override; // 02 virtual UI_MESSAGE_RESULTS ProcessMessage(UIMessage&) override; // 03 void ShowMessage() { using func_t = decltype(&MessageBoxMenu::ShowMessage); static REL::Relocation func{ ID::MessageBoxMenu::ShowMessage }; return func(this); } // members MessageBoxData* currentMessage; // E8 }; static_assert(sizeof(MessageBoxMenu) == 0xF0); }