summaryrefslogtreecommitdiff
path: root/include/Game
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2025-07-06 14:47:44 +0200
committerAetias <aetias@outlook.com>2025-07-06 14:47:44 +0200
commit36b9d9dea418bfde388216dd2e0707c4be7f19d2 (patch)
tree72953271cb823e914a94725cab32cc5cee17bf32 /include/Game
parent70e6bb21469372c6ed0a80264bffec7c160ca310 (diff)
Game 26%
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();