summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAetias <144526980+AetiasHax@users.noreply.github.com>2025-07-05 00:18:55 +0200
committerGitHub <noreply@github.com>2025-07-05 00:18:55 +0200
commit1e2adf0ebd714f9ed2c1e814276278755278dd12 (patch)
tree6457fa38205d137bf5ef95531ed54088ecc7c2f3
parentb7c6ae6e7c5dc5b9994d48d7c9dabf7bf3b9fa9c (diff)
parent92128cf891326c30c7417c596fcb3be0d2602924 (diff)
Merge pull request #102 from AetiasHax/game-state
Delink Game, GameMode, GameModePlay, GameModeAdventure
-rw-r--r--config/eur/arm9/delinks.txt7
-rw-r--r--config/eur/arm9/overlays/ov000/delinks.txt3
-rw-r--r--config/eur/arm9/overlays/ov000/symbols.txt12
-rw-r--r--config/eur/arm9/overlays/ov009/delinks.txt2
-rw-r--r--config/eur/arm9/overlays/ov009/symbols.txt22
-rw-r--r--config/eur/arm9/overlays/ov016/delinks.txt2
-rw-r--r--config/eur/arm9/overlays/ov016/symbols.txt4
-rw-r--r--config/eur/arm9/relocs.txt2
-rw-r--r--config/eur/arm9/symbols.txt38
-rw-r--r--config/usa/arm9/delinks.txt7
-rw-r--r--config/usa/arm9/overlays/ov000/delinks.txt3
-rw-r--r--config/usa/arm9/overlays/ov000/symbols.txt12
-rw-r--r--config/usa/arm9/overlays/ov009/delinks.txt2
-rw-r--r--config/usa/arm9/overlays/ov009/symbols.txt22
-rw-r--r--config/usa/arm9/overlays/ov016/delinks.txt2
-rw-r--r--config/usa/arm9/overlays/ov016/symbols.txt4
-rw-r--r--config/usa/arm9/relocs.txt2
-rw-r--r--config/usa/arm9/symbols.txt38
-rw-r--r--docs/overlays.md24
-rw-r--r--include/Game/Game.hpp43
-rw-r--r--include/Game/GameMode.hpp27
-rw-r--r--include/Game/GameModeAdventure.hpp25
-rw-r--r--include/Game/GameModePlay.hpp19
-rw-r--r--include/System/OverlayManager.hpp4
-rw-r--r--include/System/SysNew.hpp3
-rw-r--r--src/00_Core/Game/GameModePlay.cpp7
-rw-r--r--src/09_Adventure/Game/GameModeAdventure.cpp13
-rw-r--r--src/16_Startup/Game/Game.cpp4
-rw-r--r--src/Main/Game/Game.cpp11
-rw-r--r--src/Main/Game/GameMode.cpp8
-rw-r--r--src/Main/System/OverlayManager.cpp18
31 files changed, 290 insertions, 100 deletions
diff --git a/config/eur/arm9/delinks.txt b/config/eur/arm9/delinks.txt
index 81ef62d3..b04de059 100644
--- a/config/eur/arm9/delinks.txt
+++ b/config/eur/arm9/delinks.txt
@@ -11,6 +11,7 @@ src/Main/Actor/ActorType.cpp:
.bss start:0x02069180 end:0x02069188
src/Main/System/OverlayManager.cpp:
+ complete
.text start:0x0202ff44 end:0x0203003c
libs/cpp/src/__register_global_object.cpp:
@@ -59,3 +60,9 @@ src/Main/Unknown/UnkStruct_02063220.cpp:
.text start:0x0202f3f0 end:0x0202f8e8
.rodata start:0x020562e0 end:0x02056300
.data start:0x0205772c end:0x02057808
+
+src/Main/Game/Game.cpp:
+ .text start:0x0202c6c8 end:0x0202d0cc
+
+src/Main/Game/GameMode.cpp:
+ .text start:0x0202c0a8 end:0x0202c0cc
diff --git a/config/eur/arm9/overlays/ov000/delinks.txt b/config/eur/arm9/overlays/ov000/delinks.txt
index c223a7da..2981bdf4 100644
--- a/config/eur/arm9/overlays/ov000/delinks.txt
+++ b/config/eur/arm9/overlays/ov000/delinks.txt
@@ -148,3 +148,6 @@ src/00_Core/Save/AdventureFlags.cpp:
.text start:0x02097628 end:0x020980f4
.data start:0x020e310c end:0x020e3ad8
.bss start:0x020eaac4 end:0x020eaac8
+
+src/00_Core/Game/GameModePlay.cpp:
+ .text start:0x02079d28 end:0x02079ddc
diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt
index 89f2dd21..e39c1b5e 100644
--- a/config/eur/arm9/overlays/ov000/symbols.txt
+++ b/config/eur/arm9/overlays/ov000/symbols.txt
@@ -125,12 +125,12 @@ func_ov000_02079c88 kind:function(thumb,size=0x50) addr:0x02079c88
func_ov000_02079cd8 kind:function(thumb,size=0xc) addr:0x02079cd8
func_ov000_02079ce4 kind:function(thumb,size=0xc) addr:0x02079ce4
func_ov000_02079cf0 kind:function(thumb,size=0x38) addr:0x02079cf0
-func_ov000_02079d28 kind:function(thumb,size=0x2c) addr:0x02079d28
-func_ov000_02079d54 kind:function(thumb,size=0x24) addr:0x02079d54
-func_ov000_02079d78 kind:function(thumb,size=0x2c) addr:0x02079d78
-func_ov000_02079da4 kind:function(thumb,size=0x24) addr:0x02079da4
-func_ov000_02079dc8 kind:function(thumb,size=0x10) addr:0x02079dc8
-func_ov000_02079dd8 kind:function(thumb,size=0x2) addr:0x02079dd8
+_ZN12GameModePlayC1Ei kind:function(thumb,size=0x2c) addr:0x02079d28
+_ZN12GameModePlayD1Ev kind:function(thumb,size=0x24) addr:0x02079d54
+_ZN12GameModePlayD0Ev kind:function(thumb,size=0x2c) addr:0x02079d78
+_ZN12GameModePlayD2Ev kind:function(thumb,size=0x24) addr:0x02079da4
+_ZN12GameModePlay8vfunc_1cEv kind:function(thumb,size=0x10) addr:0x02079dc8
+_ZN12GameModePlay8vfunc_20Ev kind:function(thumb,size=0x2) addr:0x02079dd8
func_ov000_02079ddc kind:function(thumb,size=0x14) addr:0x02079ddc
func_ov000_02079df0 kind:function(thumb,size=0x14) addr:0x02079df0
func_ov000_02079e04 kind:function(arm,size=0x38) addr:0x02079e04
diff --git a/config/eur/arm9/overlays/ov009/delinks.txt b/config/eur/arm9/overlays/ov009/delinks.txt
index 9ed9eb3f..fd22621b 100644
--- a/config/eur/arm9/overlays/ov009/delinks.txt
+++ b/config/eur/arm9/overlays/ov009/delinks.txt
@@ -5,3 +5,5 @@
.data start:0x0211e680 end:0x0211f520 kind:data align:32
.bss start:0x0211f520 end:0x0211f640 kind:bss align:32
+src/09_Adventure/Game/GameModeAdventure.cpp:
+ .text start:0x02112c20 end:0x021132cc
diff --git a/config/eur/arm9/overlays/ov009/symbols.txt b/config/eur/arm9/overlays/ov009/symbols.txt
index bca25085..778e9232 100644
--- a/config/eur/arm9/overlays/ov009/symbols.txt
+++ b/config/eur/arm9/overlays/ov009/symbols.txt
@@ -1,14 +1,14 @@
-func_ov009_02112c20 kind:function(thumb,size=0x20) addr:0x02112c20
-func_ov009_02112c40 kind:function(thumb,size=0x128) addr:0x02112c40
-func_ov009_02112d68 kind:function(arm,size=0x4) addr:0x02112d68
-func_ov009_02112d6c kind:function(thumb,size=0x88) addr:0x02112d6c
-func_ov009_02112df4 kind:function(thumb,size=0x84) addr:0x02112df4
-func_ov009_02112e78 kind:function(arm,size=0x17c) addr:0x02112e78
-func_ov009_02112ff4 kind:function(arm,size=0xc8) addr:0x02112ff4
-func_ov009_021130bc kind:function(arm,size=0xe0) addr:0x021130bc
-func_ov009_0211319c kind:function(arm,size=0xc4) addr:0x0211319c
-func_ov009_02113260 kind:function(thumb,size=0x3c) addr:0x02113260
-func_ov009_0211329c kind:function(thumb,size=0x30) addr:0x0211329c
+_ZN17GameModeAdventure6CreateEi kind:function(thumb,size=0x20) addr:0x02112c20
+_ZN17GameModeAdventureC1Ei kind:function(thumb,size=0x128) addr:0x02112c40
+_Z19func_ov009_02112d68v kind:function(arm,size=0x4) addr:0x02112d68
+_ZN17GameModeAdventureD0Ev kind:function(thumb,size=0x88) addr:0x02112d6c
+_ZN17GameModeAdventureD2Ev kind:function(thumb,size=0x84) addr:0x02112df4
+_ZN17GameModeAdventure8vfunc_08Ei kind:function(arm,size=0x17c) addr:0x02112e78
+_ZN17GameModeAdventure8vfunc_0cEPt kind:function(arm,size=0xc8) addr:0x02112ff4
+_ZN17GameModeAdventure8vfunc_10EPt kind:function(arm,size=0xe0) addr:0x021130bc
+_ZN17GameModeAdventure8vfunc_14EPt kind:function(arm,size=0xc4) addr:0x0211319c
+_ZN17GameModeAdventure8vfunc_1cEv kind:function(thumb,size=0x3c) addr:0x02113260
+_ZN17GameModeAdventure8vfunc_20Ev kind:function(thumb,size=0x30) addr:0x0211329c
func_ov009_021132cc kind:function(thumb,size=0x84) addr:0x021132cc
func_ov009_02113350 kind:function(arm,size=0x140) addr:0x02113350
func_ov009_02113490 kind:function(thumb,size=0xa4) addr:0x02113490
diff --git a/config/eur/arm9/overlays/ov016/delinks.txt b/config/eur/arm9/overlays/ov016/delinks.txt
index 5ab20a36..9257c878 100644
--- a/config/eur/arm9/overlays/ov016/delinks.txt
+++ b/config/eur/arm9/overlays/ov016/delinks.txt
@@ -4,3 +4,5 @@
.data start:0x02120160 end:0x021201a0 kind:data align:32
.bss start:0x021201a0 end:0x021201a0 kind:bss align:32
+src/16_Startup/Game/Game.cpp:
+ .text start:0x0211fcf8 end:0x0211fddc
diff --git a/config/eur/arm9/overlays/ov016/symbols.txt b/config/eur/arm9/overlays/ov016/symbols.txt
index fa5afe6c..fbc9889a 100644
--- a/config/eur/arm9/overlays/ov016/symbols.txt
+++ b/config/eur/arm9/overlays/ov016/symbols.txt
@@ -12,8 +12,8 @@ func_ov016_0211fb60 kind:function(arm,size=0x58) addr:0x0211fb60
func_ov016_0211fbb8 kind:function(arm,size=0x5c) addr:0x0211fbb8
func_ov016_0211fc14 kind:function(arm,size=0x78) addr:0x0211fc14
func_ov016_0211fc8c kind:function(arm,size=0x6c) addr:0x0211fc8c
-func_ov016_0211fcf8 kind:function(arm,size=0x70) addr:0x0211fcf8
-func_ov016_0211fd68 kind:function(arm,size=0x74) addr:0x0211fd68
+_ZN4GameC1Ev kind:function(arm,size=0x70) addr:0x0211fcf8
+_ZN4Game19func_ov016_0211fd68Ev kind:function(arm,size=0x74) addr:0x0211fd68
func_ov016_0211fddc kind:function(arm,size=0x4) addr:0x0211fddc
func_ov016_0211fde0 kind:function(arm,size=0xd4) addr:0x0211fde0
func_ov016_0211feb4 kind:function(arm,size=0x14) addr:0x0211feb4
diff --git a/config/eur/arm9/relocs.txt b/config/eur/arm9/relocs.txt
index 73238372..94217569 100644
--- a/config/eur/arm9/relocs.txt
+++ b/config/eur/arm9/relocs.txt
@@ -3840,10 +3840,12 @@ from:0x0202fff0 kind:thumb_call to:0x0202ff44 module:main
from:0x0202fff8 kind:load to:0x020561f4 module:main
from:0x0202fffc kind:load to:0x027e0ce0 module:dtcm
from:0x02030000 kind:load to:0x020ee698 module:overlay(0)
+from:0x02030004 kind:overlay_id to:61 module:none
from:0x0203000e kind:thumb_call to:0x0202ff84 module:main
from:0x02030016 kind:thumb_call to:0x0202ff84 module:main
from:0x02030024 kind:thumb_call_arm to:0x021028a0 module:overlay(7)
from:0x0203002c kind:thumb_call to:0x0202ff84 module:main
+from:0x02030034 kind:overlay_id to:7 module:none
from:0x02030038 kind:load to:0x027e0ce0 module:dtcm
from:0x02030044 kind:thumb_call_arm to:0x0202ea0c module:main
from:0x0203006c kind:thumb_call to:0x0203004c module:main
diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt
index e2275b13..f7fba1bf 100644
--- a/config/eur/arm9/symbols.txt
+++ b/config/eur/arm9/symbols.txt
@@ -1353,13 +1353,13 @@ func_0202bc10 kind:function(arm,size=0x28) addr:0x0202bc10
func_0202bc38 kind:function(arm,size=0x320) addr:0x0202bc38
func_0202bf58 kind:function(arm,size=0x68) addr:0x0202bf58
func_0202bfc0 kind:function(arm,size=0xe8) addr:0x0202bfc0
-func_0202c0a8 kind:function(thumb,size=0x2) addr:0x0202c0a8
-func_0202c0ac kind:function(thumb,size=0xc) addr:0x0202c0ac
-func_0202c0b8 kind:function(thumb,size=0x2) addr:0x0202c0b8
-func_0202c0bc kind:function(thumb,size=0x2) addr:0x0202c0bc
-func_0202c0c0 kind:function(thumb,size=0x2) addr:0x0202c0c0
-func_0202c0c4 kind:function(thumb,size=0x2) addr:0x0202c0c4
-func_0202c0c8 kind:function(thumb,size=0x2) addr:0x0202c0c8
+_ZN8GameModeD0Ev kind:function(thumb,size=0x2) addr:0x0202c0a8
+_ZN8GameModeD2Ev kind:function(thumb,size=0xc) addr:0x0202c0ac
+_ZN8GameMode13func_0202c0b8Ev kind:function(thumb,size=0x2) addr:0x0202c0b8
+_ZN8GameMode8vfunc_0cEPt kind:function(thumb,size=0x2) addr:0x0202c0bc
+_ZN8GameMode8vfunc_10EPt kind:function(thumb,size=0x2) addr:0x0202c0c0
+_ZN8GameMode8vfunc_14EPt kind:function(thumb,size=0x2) addr:0x0202c0c4
+_ZN8GameMode8vfunc_18Ev kind:function(thumb,size=0x2) addr:0x0202c0c8
func_0202c0cc kind:function(thumb,size=0x5c) addr:0x0202c0cc
func_0202c128 kind:function(thumb,size=0x27c) addr:0x0202c128
func_0202c3a4 kind:function(arm,size=0x34) addr:0x0202c3a4
@@ -1379,15 +1379,15 @@ func_0202c5d0 kind:function(arm,size=0x18) addr:0x0202c5d0
func_0202c5e8 kind:function(thumb,size=0x90) addr:0x0202c5e8
func_0202c678 kind:function(thumb,size=0x24) addr:0x0202c678
func_0202c69c kind:function(thumb,size=0x2c) addr:0x0202c69c
-func_0202c6c8 kind:function(thumb,size=0x74) addr:0x0202c6c8
-func_0202c73c kind:function(thumb,size=0x238) addr:0x0202c73c
-func_0202c974 kind:function(thumb,size=0x8) addr:0x0202c974
-func_0202c97c kind:function(thumb,size=0x24) addr:0x0202c97c
-func_0202c9a0 kind:function(arm,size=0x528) addr:0x0202c9a0
-func_0202cec8 kind:function(thumb,size=0x6c) addr:0x0202cec8
-func_0202cf34 kind:function(thumb,size=0x10) addr:0x0202cf34
-func_0202cf44 kind:function(arm,size=0x170) addr:0x0202cf44
-func_0202d0b4 kind:function(arm,size=0x18) addr:0x0202d0b4
+_ZN4Game11EndGameModeEv kind:function(thumb,size=0x74) addr:0x0202c6c8
+_ZN4Game13StartGameModeEv kind:function(thumb,size=0x238) addr:0x0202c73c
+_ZN4Game13func_0202c974Ev kind:function(thumb,size=0x8) addr:0x0202c974
+_ZN4Game13func_0202c97cEv kind:function(thumb,size=0x24) addr:0x0202c97c
+_ZN4Game3RunEv kind:function(arm,size=0x528) addr:0x0202c9a0
+_ZN4Game13func_0202cec8Eii kind:function(thumb,size=0x6c) addr:0x0202cec8
+_ZN4Game13func_0202cf34Ev kind:function(thumb,size=0x10) addr:0x0202cf34
+_ZN4Game13func_0202cf44Ev kind:function(arm,size=0x170) addr:0x0202cf44
+_ZN4GameD1Ev kind:function(arm,size=0x18) addr:0x0202d0b4
func_0202d0cc kind:function(thumb,size=0x3a) addr:0x0202d0cc
func_0202d108 kind:function(thumb,size=0x38) addr:0x0202d108
func_0202d140 kind:function(thumb,size=0x24) addr:0x0202d140
@@ -1493,8 +1493,8 @@ func_0202ff30 kind:function(arm,size=0x14) addr:0x0202ff30
_ZN14OverlayManager4LoadEjj kind:function(thumb,size=0x1e) addr:0x0202ff44
_ZN14OverlayManager15LoadIfNotLoadedEjj kind:function(thumb,size=0x20) addr:0x0202ff64
_ZN14OverlayManager6UnloadEj kind:function(thumb,size=0x1e) addr:0x0202ff84
-_ZN14OverlayManager16LoadOverlaySetupEi kind:function(thumb,size=0x64) addr:0x0202ffa4
-_ZN14OverlayManager18UnloadOverlaySetupEv kind:function(thumb,size=0x34) addr:0x02030008
+_ZN14OverlayManager12LoadGameModeEi kind:function(thumb,size=0x64) addr:0x0202ffa4
+_ZN14OverlayManager14UnloadGameModeEv kind:function(thumb,size=0x34) addr:0x02030008
func_0203003c kind:function(thumb,size=0x2) addr:0x0203003c
func_02030040 kind:function(thumb,size=0xc) addr:0x02030040
func_0203004c kind:function(thumb,size=0x2) addr:0x0203004c
@@ -2536,7 +2536,7 @@ data_020561c4 kind:data(any) addr:0x020561c4
data_020561d4 kind:data(any) addr:0x020561d4
data_020561dc kind:data(any) addr:0x020561dc
data_020561f0 kind:data(any) addr:0x020561f0
-gOverlaySetups kind:data(any) addr:0x020561f4
+gGameModes kind:data(any) addr:0x020561f4
data_020562d4 kind:data(any) addr:0x020562d4
data_020562e2 kind:data(any) addr:0x020562e2
data_02056300 kind:data(any) addr:0x02056300
diff --git a/config/usa/arm9/delinks.txt b/config/usa/arm9/delinks.txt
index 25601a31..bd0aa688 100644
--- a/config/usa/arm9/delinks.txt
+++ b/config/usa/arm9/delinks.txt
@@ -11,6 +11,7 @@ src/Main/Actor/ActorType.cpp:
.bss start:0x02069120 end:0x02069128
src/Main/System/OverlayManager.cpp:
+ complete
.text start:0x0202ff40 end:0x02030038
libs/cpp/src/__register_global_object.cpp:
@@ -59,3 +60,9 @@ src/Main/Unknown/UnkStruct_02063220.cpp:
.text start:0x0202f3ec end:0x0202f8e4
.rodata start:0x0205629c end:0x020562bc
.data start:0x020576e4 end:0x020577c0
+
+src/Main/Game/Game.cpp:
+ .text start:0x0202c6b0 end:0x0202d0b4
+
+src/Main/Game/GameMode.cpp:
+ .text start:0x0202c090 end:0x0202c0b4
diff --git a/config/usa/arm9/overlays/ov000/delinks.txt b/config/usa/arm9/overlays/ov000/delinks.txt
index fc0373f2..2b777930 100644
--- a/config/usa/arm9/overlays/ov000/delinks.txt
+++ b/config/usa/arm9/overlays/ov000/delinks.txt
@@ -148,3 +148,6 @@ src/00_Core/Save/AdventureFlags.cpp:
.text start:0x020975c8 end:0x02098094
.data start:0x020e30ac end:0x020e3a78
.bss start:0x020eaa64 end:0x020eaa68
+
+src/00_Core/Game/GameModePlay.cpp:
+ .text start:0x02079cc8 end:0x02079d7c
diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt
index 166d6c89..fcf35446 100644
--- a/config/usa/arm9/overlays/ov000/symbols.txt
+++ b/config/usa/arm9/overlays/ov000/symbols.txt
@@ -125,12 +125,12 @@ func_ov000_02079c88 kind:function(thumb,size=0x50) addr:0x02079c28
func_ov000_02079cd8 kind:function(thumb,size=0xc) addr:0x02079c78
func_ov000_02079ce4 kind:function(thumb,size=0xc) addr:0x02079c84
func_ov000_02079cf0 kind:function(thumb,size=0x38) addr:0x02079c90
-func_ov000_02079d28 kind:function(thumb,size=0x2c) addr:0x02079cc8
-func_ov000_02079d54 kind:function(thumb,size=0x24) addr:0x02079cf4
-func_ov000_02079d78 kind:function(thumb,size=0x2c) addr:0x02079d18
-func_ov000_02079da4 kind:function(thumb,size=0x24) addr:0x02079d44
-func_ov000_02079dc8 kind:function(thumb,size=0x10) addr:0x02079d68
-func_ov000_02079dd8 kind:function(thumb,size=0x2) addr:0x02079d78
+_ZN12GameModePlayC1Ei kind:function(thumb,size=0x2c) addr:0x02079cc8
+_ZN12GameModePlayD1Ev kind:function(thumb,size=0x24) addr:0x02079cf4
+_ZN12GameModePlayD0Ev kind:function(thumb,size=0x2c) addr:0x02079d18
+_ZN12GameModePlayD2Ev kind:function(thumb,size=0x24) addr:0x02079d44
+_ZN12GameModePlay8vfunc_1cEv kind:function(thumb,size=0x10) addr:0x02079d68
+_ZN12GameModePlay8vfunc_20Ev kind:function(thumb,size=0x2) addr:0x02079d78
func_ov000_02079ddc kind:function(thumb,size=0x14) addr:0x02079d7c
func_ov000_02079df0 kind:function(thumb,size=0x14) addr:0x02079d90
func_ov000_02079e04 kind:function(arm,size=0x38) addr:0x02079da4
diff --git a/config/usa/arm9/overlays/ov009/delinks.txt b/config/usa/arm9/overlays/ov009/delinks.txt
index 0c4bafd7..6ec6679e 100644
--- a/config/usa/arm9/overlays/ov009/delinks.txt
+++ b/config/usa/arm9/overlays/ov009/delinks.txt
@@ -5,3 +5,5 @@
.data start:0x0211e600 end:0x0211f4a0 kind:data align:32
.bss start:0x0211f4a0 end:0x0211f5c0 kind:bss align:32
+src/09_Adventure/Game/GameModeAdventure.cpp:
+ .text start:0x02112ba0 end:0x0211324c
diff --git a/config/usa/arm9/overlays/ov009/symbols.txt b/config/usa/arm9/overlays/ov009/symbols.txt
index d5e29f75..63774c30 100644
--- a/config/usa/arm9/overlays/ov009/symbols.txt
+++ b/config/usa/arm9/overlays/ov009/symbols.txt
@@ -1,14 +1,14 @@
-func_ov009_02112c20 kind:function(thumb,size=0x20) addr:0x02112ba0
-func_ov009_02112c40 kind:function(thumb,size=0x128) addr:0x02112bc0
-func_ov009_02112d68 kind:function(arm,size=0x4) addr:0x02112ce8
-func_ov009_02112d6c kind:function(thumb,size=0x88) addr:0x02112cec
-func_ov009_02112df4 kind:function(thumb,size=0x84) addr:0x02112d74
-func_ov009_02112e78 kind:function(arm,size=0x17c) addr:0x02112df8
-func_ov009_02112ff4 kind:function(arm,size=0xc8) addr:0x02112f74
-func_ov009_021130bc kind:function(arm,size=0xe0) addr:0x0211303c
-func_ov009_0211319c kind:function(arm,size=0xc4) addr:0x0211311c
-func_ov009_02113260 kind:function(thumb,size=0x3c) addr:0x021131e0
-func_ov009_0211329c kind:function(thumb,size=0x30) addr:0x0211321c
+_ZN17GameModeAdventure6CreateEi kind:function(thumb,size=0x20) addr:0x02112ba0
+_ZN17GameModeAdventureC1Ei kind:function(thumb,size=0x128) addr:0x02112bc0
+_Z19func_ov009_02112d68v kind:function(arm,size=0x4) addr:0x02112ce8
+_ZN17GameModeAdventureD0Ev kind:function(thumb,size=0x88) addr:0x02112cec
+_ZN17GameModeAdventureD2Ev kind:function(thumb,size=0x84) addr:0x02112d74
+_ZN17GameModeAdventure8vfunc_08Ei kind:function(arm,size=0x17c) addr:0x02112df8
+_ZN17GameModeAdventure8vfunc_0cEPt kind:function(arm,size=0xc8) addr:0x02112f74
+_ZN17GameModeAdventure8vfunc_10EPt kind:function(arm,size=0xe0) addr:0x0211303c
+_ZN17GameModeAdventure8vfunc_14EPt kind:function(arm,size=0xc4) addr:0x0211311c
+_ZN17GameModeAdventure8vfunc_1cEv kind:function(thumb,size=0x3c) addr:0x021131e0
+_ZN17GameModeAdventure8vfunc_20Ev kind:function(thumb,size=0x30) addr:0x0211321c
func_ov009_021132cc kind:function(thumb,size=0x84) addr:0x0211324c
func_ov009_02113350 kind:function(arm,size=0x140) addr:0x021132d0
func_ov009_02113490 kind:function(thumb,size=0xa4) addr:0x02113410
diff --git a/config/usa/arm9/overlays/ov016/delinks.txt b/config/usa/arm9/overlays/ov016/delinks.txt
index 9eb4dec8..48290893 100644
--- a/config/usa/arm9/overlays/ov016/delinks.txt
+++ b/config/usa/arm9/overlays/ov016/delinks.txt
@@ -4,3 +4,5 @@
.data start:0x021200e0 end:0x02120120 kind:data align:32
.bss start:0x02120120 end:0x02120120 kind:bss align:32
+src/16_Startup/Game/Game.cpp:
+ .text start:0x0211fc78 end:0x0211fd5c
diff --git a/config/usa/arm9/overlays/ov016/symbols.txt b/config/usa/arm9/overlays/ov016/symbols.txt
index 3033733d..37623ed1 100644
--- a/config/usa/arm9/overlays/ov016/symbols.txt
+++ b/config/usa/arm9/overlays/ov016/symbols.txt
@@ -12,8 +12,8 @@ func_ov016_0211fb60 kind:function(arm,size=0x58) addr:0x0211fae0
func_ov016_0211fbb8 kind:function(arm,size=0x5c) addr:0x0211fb38
func_ov016_0211fc14 kind:function(arm,size=0x78) addr:0x0211fb94
func_ov016_0211fc8c kind:function(arm,size=0x6c) addr:0x0211fc0c
-func_ov016_0211fcf8 kind:function(arm,size=0x70) addr:0x0211fc78
-func_ov016_0211fd68 kind:function(arm,size=0x74) addr:0x0211fce8
+_ZN4GameC1Ev kind:function(arm,size=0x70) addr:0x0211fc78
+_ZN4Game19func_ov016_0211fd68Ev kind:function(arm,size=0x74) addr:0x0211fce8
func_ov016_0211fddc kind:function(arm,size=0x4) addr:0x0211fd5c
func_ov016_0211fde0 kind:function(arm,size=0xd4) addr:0x0211fd60
func_ov016_0211feb4 kind:function(arm,size=0x14) addr:0x0211fe34
diff --git a/config/usa/arm9/relocs.txt b/config/usa/arm9/relocs.txt
index ca3b6efe..afde4238 100644
--- a/config/usa/arm9/relocs.txt
+++ b/config/usa/arm9/relocs.txt
@@ -3842,10 +3842,12 @@ from:0x0202ffec kind:thumb_call to:0x0202ff40 module:main
from:0x0202fff4 kind:load to:0x020561b0 module:main
from:0x0202fff8 kind:load to:0x027e0ce0 module:dtcm
from:0x0202fffc kind:load to:0x020ee638 module:overlay(0)
+from:0x02030000 kind:overlay_id to:61 module:none
from:0x0203000a kind:thumb_call to:0x0202ff80 module:main
from:0x02030012 kind:thumb_call to:0x0202ff80 module:main
from:0x02030020 kind:thumb_call_arm to:0x02102820 module:overlay(7)
from:0x02030028 kind:thumb_call to:0x0202ff80 module:main
+from:0x02030030 kind:overlay_id to:7 module:none
from:0x02030034 kind:load to:0x027e0ce0 module:dtcm
from:0x02030040 kind:thumb_call_arm to:0x0202ea08 module:main
from:0x02030068 kind:thumb_call to:0x02030048 module:main
diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt
index 9ca1d9bc..851aaca6 100644
--- a/config/usa/arm9/symbols.txt
+++ b/config/usa/arm9/symbols.txt
@@ -1353,13 +1353,13 @@ func_0202bc10 kind:function(arm,size=0x28) addr:0x0202bbf8
func_0202bc38 kind:function(arm,size=0x320) addr:0x0202bc20
func_0202bf58 kind:function(arm,size=0x68) addr:0x0202bf40
func_0202bfc0 kind:function(arm,size=0xe8) addr:0x0202bfa8
-func_0202c0a8 kind:function(thumb,size=0x2) addr:0x0202c090
-func_0202c0ac kind:function(thumb,size=0xc) addr:0x0202c094
-func_0202c0b8 kind:function(thumb,size=0x2) addr:0x0202c0a0
-func_0202c0bc kind:function(thumb,size=0x2) addr:0x0202c0a4
-func_0202c0c0 kind:function(thumb,size=0x2) addr:0x0202c0a8
-func_0202c0c4 kind:function(thumb,size=0x2) addr:0x0202c0ac
-func_0202c0c8 kind:function(thumb,size=0x2) addr:0x0202c0b0
+_ZN8GameModeD0Ev kind:function(thumb,size=0x2) addr:0x0202c090
+_ZN8GameModeD2Ev kind:function(thumb,size=0xc) addr:0x0202c094
+_ZN8GameMode13func_0202c0b8Ev kind:function(thumb,size=0x2) addr:0x0202c0a0
+_ZN8GameMode8vfunc_0cEPt kind:function(thumb,size=0x2) addr:0x0202c0a4
+_ZN8GameMode8vfunc_10EPt kind:function(thumb,size=0x2) addr:0x0202c0a8
+_ZN8GameMode8vfunc_14EPt kind:function(thumb,size=0x2) addr:0x0202c0ac
+_ZN8GameMode8vfunc_18Ev kind:function(thumb,size=0x2) addr:0x0202c0b0
func_0202c0cc kind:function(thumb,size=0x5c) addr:0x0202c0b4
func_0202c128 kind:function(thumb,size=0x27c) addr:0x0202c110
func_0202c3a4 kind:function(arm,size=0x34) addr:0x0202c38c
@@ -1379,15 +1379,15 @@ func_0202c5d0 kind:function(arm,size=0x18) addr:0x0202c5b8
func_0202c5e8 kind:function(thumb,size=0x90) addr:0x0202c5d0
func_0202c678 kind:function(thumb,size=0x24) addr:0x0202c660
func_0202c69c kind:function(thumb,size=0x2c) addr:0x0202c684
-func_0202c6c8 kind:function(thumb,size=0x74) addr:0x0202c6b0
-func_0202c73c kind:function(thumb,size=0x238) addr:0x0202c724
-func_0202c974 kind:function(thumb,size=0x8) addr:0x0202c95c
-func_0202c97c kind:function(thumb,size=0x24) addr:0x0202c964
-func_0202c9a0 kind:function(arm,size=0x528) addr:0x0202c988
-func_0202cec8 kind:function(thumb,size=0x6c) addr:0x0202ceb0
-func_0202cf34 kind:function(thumb,size=0x10) addr:0x0202cf1c
-func_0202cf44 kind:function(arm,size=0x170) addr:0x0202cf2c
-func_0202d0b4 kind:function(arm,size=0x18) addr:0x0202d09c
+_ZN4Game11EndGameModeEv kind:function(thumb,size=0x74) addr:0x0202c6b0
+_ZN4Game13StartGameModeEv kind:function(thumb,size=0x238) addr:0x0202c724
+_ZN4Game13func_0202c974Ev kind:function(thumb,size=0x8) addr:0x0202c95c
+_ZN4Game13func_0202c97cEv kind:function(thumb,size=0x24) addr:0x0202c964
+_ZN4Game3RunEv kind:function(arm,size=0x528) addr:0x0202c988
+_ZN4Game13func_0202cec8Eii kind:function(thumb,size=0x6c) addr:0x0202ceb0
+_ZN4Game13func_0202cf34Ev kind:function(thumb,size=0x10) addr:0x0202cf1c
+_ZN4Game13func_0202cf44Ev kind:function(arm,size=0x170) addr:0x0202cf2c
+_ZN4GameD1Ev kind:function(arm,size=0x18) addr:0x0202d09c
func_0202d0cc kind:function(thumb,size=0x3a) addr:0x0202d0b4
func_0202d108 kind:function(thumb,size=0x38) addr:0x0202d0f0
func_0202d140 kind:function(thumb,size=0x24) addr:0x0202d128
@@ -1493,8 +1493,8 @@ func_0202ff30 kind:function(arm,size=0x14) addr:0x0202ff2c
_ZN14OverlayManager4LoadEjj kind:function(thumb,size=0x1e) addr:0x0202ff40
_ZN14OverlayManager15LoadIfNotLoadedEjj kind:function(thumb,size=0x20) addr:0x0202ff60
_ZN14OverlayManager6UnloadEj kind:function(thumb,size=0x1e) addr:0x0202ff80
-_ZN14OverlayManager16LoadOverlaySetupEi kind:function(thumb,size=0x64) addr:0x0202ffa0
-_ZN14OverlayManager18UnloadOverlaySetupEv kind:function(thumb,size=0x34) addr:0x02030004
+_ZN14OverlayManager12LoadGameModeEi kind:function(thumb,size=0x64) addr:0x0202ffa0
+_ZN14OverlayManager14UnloadGameModeEv kind:function(thumb,size=0x34) addr:0x02030004
func_0203003c kind:function(thumb,size=0x2) addr:0x02030038
func_02030040 kind:function(thumb,size=0xc) addr:0x0203003c
func_0203004c kind:function(thumb,size=0x2) addr:0x02030048
@@ -2536,7 +2536,7 @@ data_020561c4 kind:data(any) addr:0x02056180
data_020561d4 kind:data(any) addr:0x02056190
data_020561dc kind:data(any) addr:0x02056198
data_020561f0 kind:data(any) addr:0x020561ac
-gOverlaySetups kind:data(any) addr:0x020561b0
+gGameModes kind:data(any) addr:0x020561b0
data_020562d4 kind:data(any) addr:0x02056290
data_020562e2 kind:data(any) addr:0x0205629e
data_02056300 kind:data(any) addr:0x020562bc
diff --git a/docs/overlays.md b/docs/overlays.md
index 00eecb0d..9a36aea1 100644
--- a/docs/overlays.md
+++ b/docs/overlays.md
@@ -11,13 +11,13 @@ contribute to this list!
`04` | Load | 2 | Scene loading
`05` | --- | 2 |
`06` | --- | 2 |
-`07` | --- | 2 |
-`08` | --- | 3 |
-`09` | --- | 3 |
-`10` | --- | 3 |
-`11` | --- | 3 |
-`12` | Battle | 3 | Handles battle mode.
-`13` | --- | 3 |
+`07` | DownloadPlay | 2 | Handles DS download play.
+`08` | GameStart | 3 | Handles starting the game.
+`09` | Adventure | 3 | Handles the adventure game mode.
+`10` | FileSelect | 3 | Handles the file selection screen.
+`11` | DwcSetup | 3 | Handles Wi-Fi connection setup.
+`12` | Battle | 3 | Handles the battle game mode.
+`13` | Contact | 3 | Handles contact mode.
`14` | Land | 4 | Link and essential land-based actors.
`15` | Sea | 4 | Handles the sea, Linebeck's ship, and sea-based actors.
`16` | Startup | N/A | Exists briefly on game startup. Initializes RNG, messages, and more.
@@ -67,16 +67,16 @@ contribute to this list!
`60` | --- | 12 |
`61` | --- | 12 |
-## Overlay setups
-The game contains a list of "overlay setups" which contain overlay IDs to load into slot 1, 2, 3 and 12.
+## Game modes
+There is a list of game mode called `gGameModes` which contain overlay IDs to load into slot 1, 2, 3 and 12.
Index | Slot 1 | Slot 2 | Slot 3 | Slot 12 | Usage
-------|--------|--------|--------|---------|-------
`0` | None | None | None | None | Game load
`1` | 1 | None | 8 | None | Startup screen (before title screen)
-`2` | 3 | 4 | 9 | None | Scene load
+`2` | 3 | 4 | 9 | None | Adventure mode
`3` | 1 | 6 | 10 | None | File selection
`4` | 1 | None | 11 | 61 | Wi-Fi connection setup
-`5` | 1 | 7 | None | None | DS download play battle mode
-`6` | 1 | 4 | 12 | 60 | Multi-card battle mode
+`5` | 1 | 7 | None | None | DS download play
+`6` | 1 | 4 | 12 | 60 | Battle mode
`7` | 1 | None | 13 | None | Contact mode (trading items)
diff --git a/include/Game/Game.hpp b/include/Game/Game.hpp
new file mode 100644
index 00000000..95d49801
--- /dev/null
+++ b/include/Game/Game.hpp
@@ -0,0 +1,43 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "Game/GameMode.hpp"
+#include "Render/FadeControl.hpp"
+
+class Game {
+public:
+ /* 000 */ s32 mModeId;
+ /* 004 */ s32 mPrevModeId;
+ /* 008 */ GameMode *mMode;
+ /* 00c */ unk8 mUnk_00c[0xc0];
+ /* 0cc */ FadeControl mFadeControl;
+ /* 0f0 */ unk16 mUnk_0f0;
+ /* 0f2 */ u16 mUnk_0f2;
+ /* 0f4 */ s32 mUnk_0f4;
+ /* 0f8 */ s32 mUnk_0f8;
+ /* 0fc */ unk16 mUnk_0fc;
+ /* 0fe */ unk16 mUnk_0fe;
+ /* 100 */ unk8 mUnk_100;
+ /* 101 */ s8 mUnk_101;
+ /* 102 */ unk8 mUnk_102;
+ /* 103 */ u8 mUnk_103;
+ /* 104 */
+
+ Game();
+ ~Game();
+
+ void EndGameMode();
+ void StartGameMode();
+ void func_0202c974();
+ void func_0202c97c();
+ void Run();
+ void func_0202cec8(s32 param1, unk32 param2);
+ void func_0202cf34();
+ void func_0202cf44();
+
+ void func_ov016_0211fd68();
+};
+
+extern Game gGame;
diff --git a/include/Game/GameMode.hpp b/include/Game/GameMode.hpp
new file mode 100644
index 00000000..6888b023
--- /dev/null
+++ b/include/Game/GameMode.hpp
@@ -0,0 +1,27 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "System/SysNew.hpp"
+
+class GameMode : public SysObject {
+public:
+ /* 000 (vtable) */
+ /* 004 */ unk32 mUnk_000;
+ /* 008 */
+
+ /* 00 */ virtual ~GameMode();
+ /* 08 */ virtual unk32 vfunc_08(unk32 param1) = 0;
+ /* 0c */ virtual void vfunc_0c(u16 *param1);
+ /* 10 */ virtual void vfunc_10(u16 *param1);
+ /* 14 */ virtual void vfunc_14(u16 *param1);
+ /* 18 */ virtual void vfunc_18();
+ /* 1c */
+
+ inline GameMode() {}
+ inline GameMode(unk32 param1) :
+ mUnk_000(param1) {}
+
+ void func_0202c0b8();
+};
diff --git a/include/Game/GameModeAdventure.hpp b/include/Game/GameModeAdventure.hpp
new file mode 100644
index 00000000..a004fb70
--- /dev/null
+++ b/include/Game/GameModeAdventure.hpp
@@ -0,0 +1,25 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "Game/GameModePlay.hpp"
+
+class GameModeAdventure : public GameModePlay {
+ /* 000 (base) */
+ /* 008 */ unk8 mUnk_008[0x10];
+ /* 018 */
+
+public:
+ /* 00 */ virtual ~GameModeAdventure() override;
+ /* 08 */ virtual unk32 vfunc_08(unk32 param1) override;
+ /* 0c */ virtual void vfunc_0c(u16 *param1) override;
+ /* 10 */ virtual void vfunc_10(u16 *param1) override;
+ /* 14 */ virtual void vfunc_14(u16 *param1) override;
+ /* 1c */ virtual void vfunc_1c() override;
+ /* 20 */ virtual void vfunc_20() override;
+ /* 24 */
+
+ GameModeAdventure(unk32 param1);
+ static GameModeAdventure *Create(unk32 param1);
+};
diff --git a/include/Game/GameModePlay.hpp b/include/Game/GameModePlay.hpp
new file mode 100644
index 00000000..bd9d8596
--- /dev/null
+++ b/include/Game/GameModePlay.hpp
@@ -0,0 +1,19 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "Game/GameMode.hpp"
+
+class GameModePlay : public GameMode {
+public:
+ /* 000 (base) */
+ /* 008 */
+
+ /* 00 */ virtual ~GameModePlay() override;
+ /* 1c */ virtual void vfunc_1c();
+ /* 20 */ virtual void vfunc_20();
+ /* 24 */
+
+ GameModePlay(unk32 param1);
+};
diff --git a/include/System/OverlayManager.hpp b/include/System/OverlayManager.hpp
index 42118b57..e2ceb3f0 100644
--- a/include/System/OverlayManager.hpp
+++ b/include/System/OverlayManager.hpp
@@ -159,8 +159,8 @@ public:
void Load(OverlayIndex index, OverlayId id);
void LoadIfNotLoaded(OverlayIndex index, OverlayId id);
void Unload(OverlayIndex index);
- void LoadOverlaySetup(s32 index);
- void UnloadOverlaySetup();
+ void LoadGameMode(s32 mode);
+ void UnloadGameMode();
void LoadEquipItem(ItemFlag equipId);
};
diff --git a/include/System/SysNew.hpp b/include/System/SysNew.hpp
index 4d3c3f7c..184c27fb 100644
--- a/include/System/SysNew.hpp
+++ b/include/System/SysNew.hpp
@@ -1,5 +1,6 @@
#pragma once
+#include "global.h"
#include "types.h"
struct UnkStruct_0202e894 {
@@ -21,3 +22,5 @@ public:
static void operator delete(void *ptr);
static void operator delete[](void *ptr);
};
+
+extern UnkStruct_0202e894 *data_027e0ce4;
diff --git a/src/00_Core/Game/GameModePlay.cpp b/src/00_Core/Game/GameModePlay.cpp
new file mode 100644
index 00000000..92299df5
--- /dev/null
+++ b/src/00_Core/Game/GameModePlay.cpp
@@ -0,0 +1,7 @@
+#include "Game/GameModePlay.hpp"
+
+GameModePlay::GameModePlay(unk32 param1) :
+ GameMode(param1) {}
+GameModePlay::~GameModePlay() {}
+void GameModePlay::vfunc_1c() {}
+void GameModePlay::vfunc_20() {}
diff --git a/src/09_Adventure/Game/GameModeAdventure.cpp b/src/09_Adventure/Game/GameModeAdventure.cpp
new file mode 100644
index 00000000..bdf61424
--- /dev/null
+++ b/src/09_Adventure/Game/GameModeAdventure.cpp
@@ -0,0 +1,13 @@
+#include "Game/GameModeAdventure.hpp"
+
+GameModeAdventure *GameModeAdventure::Create(unk32 param1) {}
+GameModeAdventure::GameModeAdventure(unk32 param1) :
+ GameModePlay(param1) {}
+void func_ov009_02112d68() {}
+GameModeAdventure::~GameModeAdventure() {}
+unk32 GameModeAdventure::vfunc_08(unk32 param1) {}
+void GameModeAdventure::vfunc_0c(u16 *param1) {}
+void GameModeAdventure::vfunc_10(u16 *param1) {}
+void GameModeAdventure::vfunc_14(u16 *param1) {}
+void GameModeAdventure::vfunc_1c() {}
+void GameModeAdventure::vfunc_20() {}
diff --git a/src/16_Startup/Game/Game.cpp b/src/16_Startup/Game/Game.cpp
new file mode 100644
index 00000000..85e094b3
--- /dev/null
+++ b/src/16_Startup/Game/Game.cpp
@@ -0,0 +1,4 @@
+#include "Game/Game.hpp"
+
+Game::Game() {}
+void Game::func_ov016_0211fd68() {}
diff --git a/src/Main/Game/Game.cpp b/src/Main/Game/Game.cpp
new file mode 100644
index 00000000..ceabb272
--- /dev/null
+++ b/src/Main/Game/Game.cpp
@@ -0,0 +1,11 @@
+#include "Game/Game.hpp"
+
+void Game::EndGameMode() {}
+void Game::StartGameMode() {}
+void Game::func_0202c974() {}
+void Game::func_0202c97c() {}
+void Game::Run() {}
+void Game::func_0202cec8(s32 param1, unk32 param2) {}
+void Game::func_0202cf34() {}
+void Game::func_0202cf44() {}
+Game::~Game() {}
diff --git a/src/Main/Game/GameMode.cpp b/src/Main/Game/GameMode.cpp
new file mode 100644
index 00000000..fa86d5bc
--- /dev/null
+++ b/src/Main/Game/GameMode.cpp
@@ -0,0 +1,8 @@
+#include "Game/GameMode.hpp"
+
+GameMode::~GameMode() {}
+void GameMode::func_0202c0b8() {}
+void GameMode::vfunc_0c(u16 *param1) {}
+void GameMode::vfunc_10(u16 *param1) {}
+void GameMode::vfunc_14(u16 *param1) {}
+void GameMode::vfunc_18() {}
diff --git a/src/Main/System/OverlayManager.cpp b/src/Main/System/OverlayManager.cpp
index 5295fa2d..934ad078 100644
--- a/src/Main/System/OverlayManager.cpp
+++ b/src/Main/System/OverlayManager.cpp
@@ -9,7 +9,7 @@ struct UnkStruct_020ee698 {
};
extern UnkStruct_020ee698 data_ov000_020ee698;
-struct OverlaySetup {
+struct GameModeData {
/* 00 */ unk8 mUnk_00;
/* 01 */ unk8 mUnk_01;
/* 02 */ unk8 mUnk_02;
@@ -22,7 +22,7 @@ struct OverlaySetup {
/* 18 */ void *mUnk_18;
/* 1c */
};
-extern OverlaySetup gOverlaySetups[];
+extern GameModeData gGameModes[];
extern u32 *data_027e0ce0[];
extern "C" void func_ov007_02102850(u32 **);
@@ -52,23 +52,21 @@ THUMB void OverlayManager::Unload(OverlayIndex index) {
}
}
-//! TODO: solve the .word issue with the overlay IDs
-//! both functions should match otherwise
-THUMB void OverlayManager::LoadOverlaySetup(s32 index) {
+THUMB void OverlayManager::LoadGameMode(s32 mode) {
OverlayId overlayId;
- OverlaySetup *pSetup;
+ GameModeData *pSetup;
- pSetup = &gOverlaySetups[index];
+ pSetup = &gGameModes[mode];
this->LoadIfNotLoaded(OverlayIndex_1, pSetup->slot1Overlay);
this->LoadIfNotLoaded(OverlayIndex_2, pSetup->slot2Overlay);
- if (index == 5) {
+ if (mode == 5) {
func_ov007_02102850(data_027e0ce0);
} else {
overlayId = pSetup->slot12Overlay;
- if (index == 6 && data_ov000_020ee698.mUnk_2c == 2) {
+ if (mode == 6 && data_ov000_020ee698.mUnk_2c == 2) {
overlayId = OverlayId_61;
}
@@ -77,7 +75,7 @@ THUMB void OverlayManager::LoadOverlaySetup(s32 index) {
}
}
-THUMB void OverlayManager::UnloadOverlaySetup() {
+THUMB void OverlayManager::UnloadGameMode() {
this->Unload(OverlayIndex_12);
this->Unload(OverlayIndex_3);