|
40 | 40 | namespace RE |
41 | 41 | { |
42 | 42 | enum class ContainerMenuMode; |
| 43 | + enum class DIFFICULTY_LEVEL; |
43 | 44 | enum class EQUIP_TYPE; |
44 | 45 |
|
45 | 46 | namespace Workshop |
@@ -629,14 +630,14 @@ namespace RE |
629 | 630 |
|
630 | 631 | void CreateAndSetFiltersToColor(const NiColor& a_color, float a_brightness) |
631 | 632 | { |
632 | | - using func_t = void (BSGFxShaderFXTarget::*)(const NiColor&, float); |
| 633 | + using func_t = void (BSGFxShaderFXTarget::*)(const NiColor&, float); |
633 | 634 | static REL::Relocation<func_t> func{ REL::ID(2287028) }; |
634 | 635 | func(this, a_color, a_brightness); |
635 | 636 | } |
636 | 637 |
|
637 | 638 | void CreateAndSetFiltersToColor(std::uint8_t a_r, std::uint8_t a_g, std::uint8_t a_b, float a_brightness) |
638 | 639 | { |
639 | | - using func_t = void (BSGFxShaderFXTarget::*)(std::uint8_t, std::uint8_t, std::uint8_t, float); |
| 640 | + using func_t = void (BSGFxShaderFXTarget::*)(std::uint8_t, std::uint8_t, std::uint8_t, float); |
640 | 641 | static REL::Relocation<func_t> func{ REL::ID(783104) }; |
641 | 642 | func(this, a_r, a_g, a_b, a_brightness); |
642 | 643 | } |
@@ -794,6 +795,65 @@ namespace RE |
794 | 795 | }; |
795 | 796 | static_assert(sizeof(GameMenuBase) == 0xE0); |
796 | 797 |
|
| 798 | + struct __declspec(novtable) StartMenuBase : |
| 799 | + public GameMenuBase // 00 |
| 800 | + { |
| 801 | + public: |
| 802 | + static constexpr auto RTTI{ RTTI::StartMenuBase }; |
| 803 | + static constexpr auto VTABLE{ VTABLE::StartMenuBase }; |
| 804 | + |
| 805 | + virtual ~StartMenuBase(); // 00 |
| 806 | + |
| 807 | + // add |
| 808 | + virtual void DoLoadGame(std::int32_t a_saveIndex); // 14 |
| 809 | + virtual void InitMainList(); // 15 |
| 810 | + virtual bool GetIsMenuReady(); // 16 |
| 811 | + virtual void SaveSettings_Derived(); // 17 |
| 812 | + virtual void SetMenuColor(); // 18 |
| 813 | + |
| 814 | + // members |
| 815 | + msvc::unique_ptr<BSGFxShaderFXTarget> mainPanel; // 0E0 |
| 816 | + msvc::unique_ptr<BSGFxShaderFXTarget> versionText; // 0E8 |
| 817 | + msvc::unique_ptr<BSGFxShaderFXTarget> mainPanelBackground; // 0F0 |
| 818 | + msvc::unique_ptr<BSGFxShaderFXTarget> loadPanelBackground; // 0F8 |
| 819 | + msvc::unique_ptr<BSGFxShaderFXTarget> loadPanelBrackets; // 100 |
| 820 | + msvc::unique_ptr<BSGFxShaderFXTarget> loadPanelList; // 108 |
| 821 | + msvc::unique_ptr<BSGFxShaderFXTarget> loadPanelPlayerInfo; // 110 |
| 822 | + msvc::unique_ptr<BSGFxShaderFXTarget> confirmText; // 118 |
| 823 | + msvc::unique_ptr<BSGFxShaderFXTarget> levelText; // 120 |
| 824 | + msvc::unique_ptr<BSGFxShaderFXTarget> playtimeText; // 128 |
| 825 | + msvc::unique_ptr<BSGFxShaderFXTarget> locationText; // 130 |
| 826 | + msvc::unique_ptr<BSGFxShaderFXTarget> levelMeter; // 138 |
| 827 | + msvc::unique_ptr<BSGFxShaderFXTarget> modsLoadedText; // 140 |
| 828 | + msvc::unique_ptr<BSGFxShaderFXTarget> settingsCategoryList; // 148 |
| 829 | + msvc::unique_ptr<BSGFxShaderFXTarget> settingsList; // 150 |
| 830 | + msvc::unique_ptr<BSGFxShaderFXTarget> DLCList; // 158 |
| 831 | + msvc::unique_ptr<BSGFxShaderFXTarget> loadingIcon; // 160 |
| 832 | + msvc::unique_ptr<BSGFxShaderFXTarget> colorReference; // 168 |
| 833 | + msvc::unique_ptr<BSGFxShaderFXTarget> splashScreenText; // 170 |
| 834 | + msvc::unique_ptr<BSGFxShaderFXTarget> controlsPanel; // 178 |
| 835 | + msvc::unique_ptr<BSGFxShaderFXTarget> helpPanelBackground; // 180 |
| 836 | + msvc::unique_ptr<BSGFxShaderFXTarget> helpListBackground; // 188 |
| 837 | + msvc::unique_ptr<BSGFxShaderFXTarget> gamerTagPanel; // 190 |
| 838 | + msvc::unique_ptr<BSGFxShaderFXTarget> gamerTagText; // 198 |
| 839 | + msvc::unique_ptr<BSGFxShaderFXTarget> gamerTagIcon; // 1A0 |
| 840 | + msvc::unique_ptr<BSGFxShaderFXTarget> bethesdaLogo; // 1A8 |
| 841 | + msvc::unique_ptr<BSGFxShaderFXTarget> characterSelectList; // 1B0 |
| 842 | + msvc::unique_ptr<BSGFxShaderFXTarget> remapPrompt; // 1B8 |
| 843 | + msvc::unique_ptr<BSGFxShaderFXTarget> settingGuideText; // 1C0 |
| 844 | + msvc::unique_ptr<BSGFxShaderFXTarget> blackBackground; // 1C8 |
| 845 | + msvc::unique_ptr<BSGFxShaderFXTarget> modManager; // 1D0 |
| 846 | + msvc::unique_ptr<BSGFxShaderFXTarget> DLCImageSizer; // 1D8 |
| 847 | + msvc::unique_ptr<BSGFxShaderFXTarget> DLCPanelBrackets; // 1E0 |
| 848 | + msvc::unique_ptr<BSGFxShaderFXTarget> loginObj; // 1E8 |
| 849 | + msvc::unique_ptr<BSGFxShaderFXTarget> motD; // 1F0 |
| 850 | + BSTOptional<DIFFICULTY_LEVEL> currentDisplayDifficultyLevel; // 1F8 |
| 851 | + Scaleform::GFx::Value saveLoadPanelObj; // 218 |
| 852 | + bool gameDataReady; // 220 |
| 853 | + bool controlsChanged; // 221 |
| 854 | + }; |
| 855 | + static_assert(sizeof(StartMenuBase) == 0x228); |
| 856 | + |
797 | 857 | struct Rumble |
798 | 858 | { |
799 | 859 | public: |
@@ -828,13 +888,13 @@ namespace RE |
828 | 888 |
|
829 | 889 | [[nodiscard]] static decltype(auto) GetPickRef() |
830 | 890 | { |
831 | | - static REL::Relocation<ObjectRefHandle*> ref{ REL::ID(170742) }; |
| 891 | + static REL::Relocation<ObjectRefHandle*> ref{ REL::ID(2701395) }; |
832 | 892 | return *ref; |
833 | 893 | } |
834 | 894 |
|
835 | 895 | [[nodiscard]] static decltype(auto) GetPickRefs() |
836 | 896 | { |
837 | | - static REL::Relocation<BSTArray<ObjectRefHandle>*> pickRefs{ REL::ID(875116) }; |
| 897 | + static REL::Relocation<BSTArray<ObjectRefHandle>*> pickRefs{ REL::ID(2701391) }; |
838 | 898 | return *pickRefs; |
839 | 899 | } |
840 | 900 |
|
@@ -2180,6 +2240,33 @@ namespace RE |
2180 | 2240 | }; |
2181 | 2241 | static_assert(sizeof(LockpickingMenu) == 0x1C0); |
2182 | 2242 |
|
| 2243 | + class __declspec(novtable) PauseMenu : |
| 2244 | + public StartMenuBase // 00 |
| 2245 | + { |
| 2246 | + public: |
| 2247 | + static constexpr auto RTTI{ RTTI::PauseMenu }; |
| 2248 | + static constexpr auto VTABLE{ VTABLE::PauseMenu }; |
| 2249 | + static constexpr auto MENU_NAME{ "PauseMenu"sv }; |
| 2250 | + |
| 2251 | + // members |
| 2252 | + msvc::unique_ptr<BSGFxShaderFXTarget> helpTopicList; // 228 |
| 2253 | + msvc::unique_ptr<BSGFxShaderFXTarget> helpPanelBrackets; // 230 |
| 2254 | + msvc::unique_ptr<BSGFxShaderFXTarget> helpListBrackets; // 238 |
| 2255 | + msvc::unique_ptr<BSGFxShaderFXTarget> helpText; // 240 |
| 2256 | + msvc::unique_ptr<BSGFxShaderFXTarget> helpTitleText; // 248 |
| 2257 | + msvc::unique_ptr<BSGFxShaderFXTarget> helpScrollUp; // 250 |
| 2258 | + msvc::unique_ptr<BSGFxShaderFXTarget> helpScrollDown; // 258 |
| 2259 | + Rumble::AutoRumblePause rumbleLock; // 260 |
| 2260 | + bool hideScreen3D; // 261 |
| 2261 | + bool modMenuShaderWasEnabled; // 262 |
| 2262 | + bool vatsWasEnabled; // 263 |
| 2263 | + bool vatsDepthTestMask; // 264 |
| 2264 | + bool quitToMainMenuQueued; // 265 |
| 2265 | + bool quitToDesktopQueued; // 266 |
| 2266 | + bool noProfileSelected; // 267 |
| 2267 | + }; |
| 2268 | + static_assert(sizeof(PauseMenu) == 0x268); |
| 2269 | + |
2183 | 2270 | class __declspec(novtable) SitWaitMenu : |
2184 | 2271 | public GameMenuBase // 00 |
2185 | 2272 | { |
|
0 commit comments