#pragma once #include "RE/B/BSTEvent.h" #include "RE/B/BSTSingleton.h" namespace RE { class ApplyColorUpdateEvent; class DoBeforeNewOrLoadCompletedEvent; class QueueSurvivalBumpDownMessage; class RevertPlayerCharacterEvent; class SaveLoadMessageTypeEvent; class __declspec(novtable) GameUIModel : public BSTSingletonSDM, public BSTEventSink, public BSTEventSink, public BSTEventSink, public BSTEventSink, public BSTEventSink { public: static constexpr auto RTTI{ RTTI::GameUIModel }; static constexpr auto VTABLE{ VTABLE::GameUIModel }; [[nodiscard]] static GameUIModel* GetSingleton() { static REL::Relocation singleton{ ID::GameUIModel::Singleton }; return *singleton; } void SetGameColors() { using func_t = decltype(&GameUIModel::SetGameColors); static REL::Relocation func{ ID::GameUIModel::SetGameColors }; return func(this); } void UpdateDataModels() { using func_t = decltype(&GameUIModel::UpdateDataModels); static REL::Relocation func{ ID::GameUIModel::UpdateDataModels }; return func(this); } }; }