diff options
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(); |
