summaryrefslogtreecommitdiff
path: root/include/Game
diff options
context:
space:
mode:
Diffstat (limited to 'include/Game')
-rw-r--r--include/Game/Game.hpp28
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();