diff options
| author | Aetias <aetias@outlook.com> | 2025-07-06 14:47:44 +0200 |
|---|---|---|
| committer | Aetias <aetias@outlook.com> | 2025-07-06 14:47:44 +0200 |
| commit | 36b9d9dea418bfde388216dd2e0707c4be7f19d2 (patch) | |
| tree | 72953271cb823e914a94725cab32cc5cee17bf32 /include/Game | |
| parent | 70e6bb21469372c6ed0a80264bffec7c160ca310 (diff) | |
Game 26%
Diffstat (limited to 'include/Game')
| -rw-r--r-- | include/Game/Game.hpp | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/include/Game/Game.hpp b/include/Game/Game.hpp index 8bb41b95..4c60c0ab 100644 --- a/include/Game/Game.hpp +++ b/include/Game/Game.hpp @@ -5,11 +5,29 @@ #include "Game/GameMode.hpp" #include "Render/FadeControl.hpp" +#include "System/OverlayManager.hpp" + +typedef GameMode *(*GameModeCreateFunc)(GameModeId modeId); + +struct GameModeData { + /* 00 */ u8 mUnk_00; + /* 01 */ u8 mUnk_01; + /* 02 */ u8 mUnk_02; + /* 03 */ u8 mUnk_03; + /* 04 */ OverlayId slot1Overlay; + /* 08 */ OverlayId slot2Overlay; + /* 0c */ OverlayId slot3Overlay; + /* 10 */ OverlayId slot12Overlay; + /* 14 */ GameModeCreateFunc mModeCreateFunc; + /* 18 */ void *mUnk_18; + /* 1c */ +}; +extern const GameModeData gGameModes[]; class Game { public: - /* 000 */ s32 mModeId; - /* 004 */ s32 mPrevModeId; + /* 000 */ GameModeId mModeId; + /* 004 */ GameModeId mPrevModeId; /* 008 */ GameMode *mMode; /* 00c */ unk8 mUnk_00c[0xc0]; /* 0cc */ FadeControl mFadeControl; @@ -17,8 +35,8 @@ public: /* 0f2 */ u16 mUnk_0f2; /* 0f4 */ s32 mUnk_0f4; /* 0f8 */ s32 mUnk_0f8; - /* 0fc */ unk16 mUnk_0fc; - /* 0fe */ unk16 mUnk_0fe; + /* 0fc */ u16 mUnk_0fc; + /* 0fe */ u16 mUnk_0fe; /* 100 */ unk8 mUnk_100; /* 101 */ s8 mUnk_101; /* 102 */ bool mUnk_102; @@ -29,7 +47,7 @@ public: ~Game(); void EndGameMode(); - void StartGameMode(); + bool StartGameMode(); void func_0202c974(); void func_0202c97c(); void Run(); |
