From 346a2af149fb20a3c721a2c070a89919a143ae7f Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 5 Jul 2025 00:16:17 +0200 Subject: [PATCH] Delink Game, GameMode, GameModePlay, GameModeAdventure --- config/eur/arm9/delinks.txt | 6 +++ config/eur/arm9/overlays/ov000/delinks.txt | 3 ++ config/eur/arm9/overlays/ov000/symbols.txt | 12 +++--- config/eur/arm9/overlays/ov009/delinks.txt | 2 + config/eur/arm9/overlays/ov009/symbols.txt | 22 +++++------ config/eur/arm9/overlays/ov016/delinks.txt | 2 + config/eur/arm9/overlays/ov016/symbols.txt | 4 +- config/eur/arm9/symbols.txt | 32 +++++++-------- config/usa/arm9/delinks.txt | 6 +++ config/usa/arm9/overlays/ov000/delinks.txt | 3 ++ config/usa/arm9/overlays/ov000/symbols.txt | 12 +++--- config/usa/arm9/overlays/ov009/delinks.txt | 2 + config/usa/arm9/overlays/ov009/symbols.txt | 22 +++++------ config/usa/arm9/overlays/ov016/delinks.txt | 2 + config/usa/arm9/overlays/ov016/symbols.txt | 4 +- config/usa/arm9/symbols.txt | 32 +++++++-------- include/Game/Game.hpp | 43 +++++++++++++++++++++ include/Game/GameMode.hpp | 27 +++++++++++++ include/Game/GameModeAdventure.hpp | 25 ++++++++++++ include/Game/GameModePlay.hpp | 19 +++++++++ include/System/SysNew.hpp | 3 ++ src/00_Core/Game/GameModePlay.cpp | 7 ++++ src/09_Adventure/Game/GameModeAdventure.cpp | 13 +++++++ src/16_Startup/Game/Game.cpp | 4 ++ src/Main/Game/Game.cpp | 11 ++++++ src/Main/Game/GameMode.cpp | 8 ++++ src/Main/System/OverlayManager.cpp | 6 +-- 27 files changed, 259 insertions(+), 73 deletions(-) create mode 100644 include/Game/Game.hpp create mode 100644 include/Game/GameMode.hpp create mode 100644 include/Game/GameModeAdventure.hpp create mode 100644 include/Game/GameModePlay.hpp create mode 100644 src/00_Core/Game/GameModePlay.cpp create mode 100644 src/09_Adventure/Game/GameModeAdventure.cpp create mode 100644 src/16_Startup/Game/Game.cpp create mode 100644 src/Main/Game/Game.cpp create mode 100644 src/Main/Game/GameMode.cpp diff --git a/config/eur/arm9/delinks.txt b/config/eur/arm9/delinks.txt index b29780d9..b04de059 100644 --- a/config/eur/arm9/delinks.txt +++ b/config/eur/arm9/delinks.txt @@ -60,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/symbols.txt b/config/eur/arm9/symbols.txt index 85380478..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 diff --git a/config/usa/arm9/delinks.txt b/config/usa/arm9/delinks.txt index 476a595a..bd0aa688 100644 --- a/config/usa/arm9/delinks.txt +++ b/config/usa/arm9/delinks.txt @@ -60,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/symbols.txt b/config/usa/arm9/symbols.txt index b216983c..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 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/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 4e22cb3e..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 GameMode { +struct GameModeData { /* 00 */ unk8 mUnk_00; /* 01 */ unk8 mUnk_01; /* 02 */ unk8 mUnk_02; @@ -22,7 +22,7 @@ struct GameMode { /* 18 */ void *mUnk_18; /* 1c */ }; -extern GameMode gGameModes[]; +extern GameModeData gGameModes[]; extern u32 *data_027e0ce0[]; extern "C" void func_ov007_02102850(u32 **); @@ -54,7 +54,7 @@ THUMB void OverlayManager::Unload(OverlayIndex index) { THUMB void OverlayManager::LoadGameMode(s32 mode) { OverlayId overlayId; - GameMode *pSetup; + GameModeData *pSetup; pSetup = &gGameModes[mode];