diff --git a/config/eur/arm9/delinks.txt b/config/eur/arm9/delinks.txt index b04de059..17120ecf 100644 --- a/config/eur/arm9/delinks.txt +++ b/config/eur/arm9/delinks.txt @@ -65,4 +65,6 @@ src/Main/Game/Game.cpp: .text start:0x0202c6c8 end:0x0202d0cc src/Main/Game/GameMode.cpp: + complete .text start:0x0202c0a8 end:0x0202c0cc + .data start:0x0205762c end:0x02057650 diff --git a/config/eur/arm9/overlays/ov000/relocs.txt b/config/eur/arm9/overlays/ov000/relocs.txt index 211e8b34..190c2319 100644 --- a/config/eur/arm9/overlays/ov000/relocs.txt +++ b/config/eur/arm9/overlays/ov000/relocs.txt @@ -425,7 +425,7 @@ from:0x02079d02 kind:thumb_call_arm to:0x02007938 module:main from:0x02079d16 kind:thumb_call to:0x02079bdc module:overlay(0) from:0x02079d20 kind:load to:0x020691a0 module:main from:0x02079d3c kind:thumb_call_arm to:0x0201823c module:main -from:0x02079d44 kind:load to:0x02057634 module:main +from:0x02079d44 kind:load to:0x0205762c add:8 module:main from:0x02079d48 kind:load to:0x020e2020 module:overlay(0) from:0x02079d4c kind:load to:0x027e0d40 module:dtcm from:0x02079d50 kind:load to:0x027e0934 module:dtcm diff --git a/config/eur/arm9/overlays/ov002/symbols.txt b/config/eur/arm9/overlays/ov002/symbols.txt index 59355af3..b8b31716 100644 --- a/config/eur/arm9/overlays/ov002/symbols.txt +++ b/config/eur/arm9/overlays/ov002/symbols.txt @@ -164,9 +164,9 @@ func_ov002_020f41f8 kind:function(arm,size=0x14) addr:0x020f41f8 func_ov002_020f420c kind:function(arm,size=0xb90) addr:0x020f420c func_ov002_020f4d9c kind:function(arm,size=0x324) addr:0x020f4d9c func_ov002_020f50c0 kind:function(arm,size=0x2d0) addr:0x020f50c0 -func_ov002_020f5390 kind:function(arm,size=0x174) addr:0x020f5390 -func_ov002_020f5504 kind:function(arm,size=0x1c4) addr:0x020f5504 -func_ov002_020f56c8 kind:function(arm,size=0x19c) addr:0x020f56c8 +_ZN18UnkStruct_0211a9ac19func_ov002_020f5390EPt kind:function(arm,size=0x174) addr:0x020f5390 +_ZN18UnkStruct_0211a9ac19func_ov002_020f5504EPt kind:function(arm,size=0x1c4) addr:0x020f5504 +_ZN18UnkStruct_0211a9ac19func_ov002_020f56c8EPt kind:function(arm,size=0x19c) addr:0x020f56c8 func_ov002_020f5864 kind:function(arm,size=0x50) addr:0x020f5864 func_ov002_020f58b4 kind:function(arm,size=0x248) addr:0x020f58b4 func_ov002_020f5afc kind:function(arm,size=0x2c8) addr:0x020f5afc diff --git a/config/eur/arm9/overlays/ov003/symbols.txt b/config/eur/arm9/overlays/ov003/symbols.txt index c41b9d74..8c395677 100644 --- a/config/eur/arm9/overlays/ov003/symbols.txt +++ b/config/eur/arm9/overlays/ov003/symbols.txt @@ -75,7 +75,7 @@ func_ov003_020f2944 kind:function(thumb,size=0x32) addr:0x020f2944 func_ov003_020f2978 kind:function(thumb,size=0xa0) addr:0x020f2978 func_ov003_020f2a18 kind:function(arm,size=0x14) addr:0x020f2a18 func_ov003_020f2a2c kind:function(thumb,size=0xa0) addr:0x020f2a2c -func_ov003_020f2acc kind:function(thumb,size=0xb8) addr:0x020f2acc +_ZN18UnkStruct_020f297819func_ov003_020f2accEv kind:function(thumb,size=0xb8) addr:0x020f2acc func_ov003_020f2b84 kind:function(thumb,size=0x46) addr:0x020f2b84 func_ov003_020f2bcc kind:function(thumb,size=0x50) addr:0x020f2bcc func_ov003_020f2c1c kind:function(arm,size=0x1c) addr:0x020f2c1c @@ -171,8 +171,8 @@ func_ov003_020f4510 kind:function(thumb,size=0x24) addr:0x020f4510 func_ov003_020f4534 kind:function(thumb,size=0x24) addr:0x020f4534 func_ov003_020f4558 kind:function(thumb,size=0xa8) addr:0x020f4558 func_ov003_020f4600 kind:function(thumb,size=0x78) addr:0x020f4600 -func_ov003_020f4678 kind:function(thumb,size=0x80) addr:0x020f4678 -func_ov003_020f46f8 kind:function(thumb,size=0x1e) addr:0x020f46f8 +_ZN17UnkClass_027e105419func_ov003_020f4678Ei kind:function(thumb,size=0x80) addr:0x020f4678 +_ZN17UnkClass_027e105418func_ov003_02f46f8Ev kind:function(thumb,size=0x1e) addr:0x020f46f8 func_ov003_020f4718 kind:function(thumb,size=0x48) addr:0x020f4718 func_ov003_020f4760 kind:function(thumb,size=0x18) addr:0x020f4760 func_ov003_020f4778 kind:function(thumb,size=0x6c) addr:0x020f4778 @@ -184,7 +184,7 @@ func_ov003_020f48dc kind:function(thumb,size=0x2e) addr:0x020f48dc func_ov003_020f490c kind:function(thumb,size=0x34) addr:0x020f490c func_ov003_020f4940 kind:function(thumb,size=0x20) addr:0x020f4940 func_ov003_020f4960 kind:function(arm,size=0xfc) addr:0x020f4960 -func_ov003_020f4a5c kind:function(arm,size=0xbc) addr:0x020f4a5c +_ZN17UnkClass_027e105419func_ov003_020f4a5cEv kind:function(arm,size=0xbc) addr:0x020f4a5c func_ov003_020f4b18 kind:function(thumb,size=0x64) addr:0x020f4b18 func_ov003_020f4b7c kind:function(arm,size=0x44) addr:0x020f4b7c func_ov003_020f4bc0 kind:function(thumb,size=0x48) addr:0x020f4bc0 @@ -355,23 +355,23 @@ func_ov003_020fab64 kind:function(thumb,size=0x240) addr:0x020fab64 func_ov003_020fada4 kind:function(thumb,size=0x2e) addr:0x020fada4 func_ov003_020fadd4 kind:function(thumb,size=0x20) addr:0x020fadd4 func_ov003_020fadf4 kind:function(thumb,size=0x40) addr:0x020fadf4 -func_ov003_020fae34 kind:function(thumb,size=0x30) addr:0x020fae34 -func_ov003_020fae64 kind:function(thumb,size=0x22) addr:0x020fae64 +_ZN18UnkStruct_020fadf4D1Ev kind:function(thumb,size=0x30) addr:0x020fae34 +_ZN18UnkStruct_020fadf419func_ov003_020fae64Ev kind:function(thumb,size=0x22) addr:0x020fae64 func_ov003_020fae88 kind:function(thumb,size=0x18) addr:0x020fae88 func_ov003_020faea0 kind:function(thumb,size=0x44) addr:0x020faea0 func_ov003_020faee4 kind:function(thumb,size=0x48) addr:0x020faee4 func_ov003_020faf2c kind:function(thumb,size=0x48) addr:0x020faf2c func_ov003_020faf74 kind:function(thumb,size=0x1c) addr:0x020faf74 -func_ov003_020faf90 kind:function(thumb,size=0x80) addr:0x020faf90 -func_ov003_020fb010 kind:function(thumb,size=0x44) addr:0x020fb010 +_ZN18UnkStruct_0211ac0c19func_ov003_020faf90Ev kind:function(thumb,size=0x80) addr:0x020faf90 +_ZN18UnkStruct_0211ac0c19func_ov003_020fb010Ev kind:function(thumb,size=0x44) addr:0x020fb010 func_ov003_020fb054 kind:function(thumb,size=0x30) addr:0x020fb054 func_ov003_020fb084 kind:function(thumb,size=0x24) addr:0x020fb084 func_ov003_020fb0a8 kind:function(thumb,size=0x8) addr:0x020fb0a8 func_ov003_020fb0b0 kind:function(thumb,size=0x68) addr:0x020fb0b0 func_ov003_020fb118 kind:function(thumb,size=0x2e) addr:0x020fb118 func_ov003_020fb148 kind:function(arm,size=0x110) addr:0x020fb148 -func_ov003_020fb258 kind:function(thumb,size=0x14) addr:0x020fb258 -func_ov003_020fb26c kind:function(thumb,size=0x26) addr:0x020fb26c +_ZN18UnkStruct_0211ac0c19func_ov003_020fb258EPt kind:function(thumb,size=0x14) addr:0x020fb258 +_ZN18UnkStruct_0211ac0c19func_ov003_020fb26cEv kind:function(thumb,size=0x26) addr:0x020fb26c func_ov003_020fb294 kind:function(thumb,size=0x38) addr:0x020fb294 func_ov003_020fb2cc kind:function(thumb,size=0x1a) addr:0x020fb2cc func_ov003_020fb2e8 kind:function(thumb,size=0x88) addr:0x020fb2e8 diff --git a/config/eur/arm9/overlays/ov005/symbols.txt b/config/eur/arm9/overlays/ov005/symbols.txt index c4456c3a..ce09a288 100644 --- a/config/eur/arm9/overlays/ov005/symbols.txt +++ b/config/eur/arm9/overlays/ov005/symbols.txt @@ -1,5 +1,5 @@ func_ov005_02100ae0 kind:function(arm,size=0x9c) addr:0x02100ae0 -func_ov005_02100b7c kind:function(arm,size=0x74) addr:0x02100b7c +_ZN18UnkStruct_027e0d3819func_ov005_02100b7cEi kind:function(arm,size=0x74) addr:0x02100b7c func_ov005_02100bf0 kind:function(arm,size=0xc0) addr:0x02100bf0 func_ov005_02100cb0 kind:function(arm,size=0x110) addr:0x02100cb0 func_ov005_02100dc0 kind:function(arm,size=0x4c) addr:0x02100dc0 diff --git a/config/eur/arm9/overlays/ov007/relocs.txt b/config/eur/arm9/overlays/ov007/relocs.txt index b6b2b778..2229b4b1 100644 --- a/config/eur/arm9/overlays/ov007/relocs.txt +++ b/config/eur/arm9/overlays/ov007/relocs.txt @@ -39,7 +39,7 @@ from:0x02100ef8 kind:arm_call to:0x02007ad8 module:main from:0x02100f10 kind:arm_call to:0x02007ad8 module:main from:0x02100f38 kind:arm_call_thumb to:0x0200b944 module:main from:0x02100f44 kind:arm_call_thumb to:0x0200b954 module:main -from:0x02100f54 kind:load to:0x02057634 module:main +from:0x02100f54 kind:load to:0x0205762c add:8 module:main from:0x02100f58 kind:load to:0x021029c8 module:overlay(7) from:0x02100f5c kind:load to:0x021029fc module:overlay(7) from:0x02100f60 kind:load to:0x021029ec module:overlay(7) diff --git a/config/eur/arm9/overlays/ov008/relocs.txt b/config/eur/arm9/overlays/ov008/relocs.txt index 88c4739a..8c613f22 100644 --- a/config/eur/arm9/overlays/ov008/relocs.txt +++ b/config/eur/arm9/overlays/ov008/relocs.txt @@ -10,7 +10,7 @@ from:0x02112cf0 kind:arm_call_thumb to:0x02031e1c module:main from:0x02112d18 kind:arm_call_thumb to:0x02027ab4 module:main from:0x02112d44 kind:arm_call_thumb to:0x02027ab4 module:main from:0x02112d4c kind:arm_call_thumb to:0x02016fcc module:main -from:0x02112d5c kind:load to:0x02057634 module:main +from:0x02112d5c kind:load to:0x0205762c add:8 module:main from:0x02112d60 kind:load to:0x02113b44 module:overlay(8) from:0x02112d64 kind:load to:0x02113b00 module:overlay(8) from:0x02112d68 kind:load to:0x02113b04 module:overlay(8) diff --git a/config/eur/arm9/overlays/ov009/delinks.txt b/config/eur/arm9/overlays/ov009/delinks.txt index fd22621b..9f10b084 100644 --- a/config/eur/arm9/overlays/ov009/delinks.txt +++ b/config/eur/arm9/overlays/ov009/delinks.txt @@ -7,3 +7,4 @@ src/09_Adventure/Game/GameModeAdventure.cpp: .text start:0x02112c20 end:0x021132cc + .data start:0x0211e680 end:0x0211e6ec diff --git a/config/eur/arm9/overlays/ov009/symbols.txt b/config/eur/arm9/overlays/ov009/symbols.txt index 778e9232..f33840eb 100644 --- a/config/eur/arm9/overlays/ov009/symbols.txt +++ b/config/eur/arm9/overlays/ov009/symbols.txt @@ -1,8 +1,8 @@ _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 +_ZN21UnkStruct_020f2978_00D1Ev kind:function(arm,size=0x4) addr:0x02112d68 _ZN17GameModeAdventureD0Ev kind:function(thumb,size=0x88) addr:0x02112d6c -_ZN17GameModeAdventureD2Ev kind:function(thumb,size=0x84) addr:0x02112df4 +_ZN17GameModeAdventureD1Ev 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 @@ -22,9 +22,9 @@ func_ov009_0211364c kind:function(thumb,size=0x2) addr:0x0211364c func_ov009_02113650 kind:function(arm,size=0x1c) addr:0x02113650 func_ov009_0211366c kind:function(arm,size=0x2c) addr:0x0211366c func_ov009_02113698 kind:function(arm,size=0x2c) addr:0x02113698 -func_ov009_021136c4 kind:function(arm,size=0x24) addr:0x021136c4 -func_ov009_021136e8 kind:function(arm,size=0x24) addr:0x021136e8 -func_ov009_0211370c kind:function(arm,size=0x20) addr:0x0211370c +_ZN23UnkStruct_020fadf4_Base19func_ov009_021136c4Ev kind:function(arm,size=0x24) addr:0x021136c4 +_ZN18UnkStruct_0211ac0c19func_ov009_021136e8Ev kind:function(arm,size=0x24) addr:0x021136e8 +_ZN23UnkStruct_020fadf4_Base19func_ov009_0211370cEv kind:function(arm,size=0x20) addr:0x0211370c func_ov009_0211372c kind:function(arm,size=0x11c) addr:0x0211372c func_ov009_02113848 kind:function(thumb,size=0x20) addr:0x02113848 func_ov009_02113868 kind:function(thumb,size=0x94) addr:0x02113868 @@ -345,12 +345,12 @@ func_ov009_0211a880 kind:function(arm,size=0x2c) addr:0x0211a880 func_ov009_0211a8ac kind:function(arm,size=0xdc) addr:0x0211a8ac func_ov009_0211a988 kind:function(arm,size=0x24) addr:0x0211a988 func_ov009_0211a9ac kind:function(thumb,size=0x88) addr:0x0211a9ac -func_ov009_0211aa34 kind:function(thumb,size=0x60) addr:0x0211aa34 +_ZN18UnkStruct_0211a9acD1Ev kind:function(thumb,size=0x60) addr:0x0211aa34 func_ov009_0211aa94 kind:function(arm,size=0xf8) addr:0x0211aa94 func_ov009_0211ab8c kind:function(arm,size=0x3c) addr:0x0211ab8c func_ov009_0211abc8 kind:function(arm,size=0x44) addr:0x0211abc8 func_ov009_0211ac0c kind:function(thumb,size=0x20) addr:0x0211ac0c -func_ov009_0211ac2c kind:function(thumb,size=0x2a) addr:0x0211ac2c +_ZN18UnkStruct_0211ac0c19func_ov009_0211ac2cEv kind:function(thumb,size=0x2a) addr:0x0211ac2c func_ov009_0211ac58 kind:function(thumb,size=0x90) addr:0x0211ac58 func_ov009_0211ace8 kind:function(thumb,size=0x10) addr:0x0211ace8 func_ov009_0211acf8 kind:function(thumb,size=0xa0) addr:0x0211acf8 @@ -608,7 +608,7 @@ data_ov009_0211e690 kind:data(any) addr:0x0211e690 data_ov009_0211e694 kind:data(any) addr:0x0211e694 data_ov009_0211e698 kind:data(any) addr:0x0211e698 data_ov009_0211e69c kind:data(any) addr:0x0211e69c -data_ov009_0211e6c8 kind:data(any) addr:0x0211e6c8 +_ZTV17GameModeAdventure kind:data(any) addr:0x0211e6c8 data_ov009_0211e6ec kind:data(any) addr:0x0211e6ec data_ov009_0211e6f0 kind:data(any) addr:0x0211e6f0 data_ov009_0211e6f4 kind:data(any) addr:0x0211e6f4 diff --git a/config/eur/arm9/overlays/ov010/relocs.txt b/config/eur/arm9/overlays/ov010/relocs.txt index 611c23b6..f2b7f8a8 100644 --- a/config/eur/arm9/overlays/ov010/relocs.txt +++ b/config/eur/arm9/overlays/ov010/relocs.txt @@ -16,7 +16,7 @@ from:0x02112cfc kind:thumb_call_arm to:0x02032a74 module:main from:0x02112d00 kind:thumb_call_arm to:0x020329b0 module:main from:0x02112d10 kind:thumb_call_arm to:0x02032a74 module:main from:0x02112d16 kind:thumb_call_arm to:0x020d8718 module:overlay(0) -from:0x02112d20 kind:load to:0x02057634 module:main +from:0x02112d20 kind:load to:0x0205762c add:8 module:main from:0x02112d24 kind:load to:0x0211ea68 module:overlay(10) from:0x02112d28 kind:load to:0x027e0618 module:dtcm from:0x02112d2c kind:load to:0x027e0ce0 module:dtcm diff --git a/config/eur/arm9/overlays/ov011/relocs.txt b/config/eur/arm9/overlays/ov011/relocs.txt index f23619b8..47be35a5 100644 --- a/config/eur/arm9/overlays/ov011/relocs.txt +++ b/config/eur/arm9/overlays/ov011/relocs.txt @@ -6309,7 +6309,7 @@ from:0x0212b99c kind:thumb_call to:0x0211c048 module:overlay(11) from:0x0212b9a0 kind:thumb_call_arm to:0x0200c20c module:main from:0x0212b9ac kind:thumb_call_arm to:0x0200ee38 module:main from:0x0212b9b2 kind:thumb_call_arm to:0x0200ef98 module:main -from:0x0212b9bc kind:load to:0x02057634 module:main +from:0x0212b9bc kind:load to:0x0205762c add:8 module:main from:0x0212b9c0 kind:load to:0x021307e8 module:overlay(11) from:0x0212b9c4 kind:load to:0x027e0ce0 module:dtcm from:0x0212b9cc kind:load to:0x027e05f4 module:dtcm diff --git a/config/eur/arm9/overlays/ov013/relocs.txt b/config/eur/arm9/overlays/ov013/relocs.txt index 2a23fd31..98ed21ca 100644 --- a/config/eur/arm9/overlays/ov013/relocs.txt +++ b/config/eur/arm9/overlays/ov013/relocs.txt @@ -272,7 +272,7 @@ from:0x0211530c kind:arm_call to:0x020f802c module:overlay(1) from:0x0211532c kind:arm_call to:0x020f7f34 module:overlay(1) from:0x02115340 kind:arm_call to:0x020f5024 module:overlay(1) from:0x02115358 kind:arm_call to:0x02115800 module:overlay(13) -from:0x02115370 kind:load to:0x02057634 module:main +from:0x02115370 kind:load to:0x0205762c add:8 module:main from:0x02115374 kind:load to:0x021161c0 module:overlay(13) from:0x02115378 kind:load to:0x021153b8 module:overlay(13) from:0x0211537c kind:load to:0x021153d8 module:overlay(13) diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index f7fba1bf..ef196184 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1353,8 +1353,8 @@ 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 -_ZN8GameModeD0Ev kind:function(thumb,size=0x2) addr:0x0202c0a8 -_ZN8GameModeD2Ev kind:function(thumb,size=0xc) addr:0x0202c0ac +_ZN8GameModeD1Ev kind:function(thumb,size=0x2) addr:0x0202c0a8 +_ZN8GameModeD0Ev 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 @@ -2646,7 +2646,7 @@ data_02057610 kind:data(any) addr:0x02057610 data_02057618 kind:data(any) addr:0x02057618 data_02057620 kind:data(any) addr:0x02057620 data_02057628 kind:data(any) addr:0x02057628 -data_02057634 kind:data(any) addr:0x02057634 +_ZTV8GameMode kind:data(any) addr:0x0205762c data_02057650 kind:data(any) addr:0x02057650 data_0205765c kind:data(any) addr:0x0205765c data_02057664 kind:data(any) addr:0x02057664 diff --git a/config/usa/arm9/delinks.txt b/config/usa/arm9/delinks.txt index bd0aa688..d20da38e 100644 --- a/config/usa/arm9/delinks.txt +++ b/config/usa/arm9/delinks.txt @@ -65,4 +65,6 @@ src/Main/Game/Game.cpp: .text start:0x0202c6b0 end:0x0202d0b4 src/Main/Game/GameMode.cpp: + complete .text start:0x0202c090 end:0x0202c0b4 + .data start:0x020575cc end:0x020575f0 diff --git a/config/usa/arm9/overlays/ov000/relocs.txt b/config/usa/arm9/overlays/ov000/relocs.txt index 9e9a093e..8d0854cd 100644 --- a/config/usa/arm9/overlays/ov000/relocs.txt +++ b/config/usa/arm9/overlays/ov000/relocs.txt @@ -425,7 +425,7 @@ from:0x02079ca2 kind:thumb_call_arm to:0x02007938 module:main from:0x02079cb6 kind:thumb_call to:0x02079b7c module:overlay(0) from:0x02079cc0 kind:load to:0x02069140 module:main from:0x02079cdc kind:thumb_call_arm to:0x0201823c module:main -from:0x02079ce4 kind:load to:0x020575d4 module:main +from:0x02079ce4 kind:load to:0x020575cc add:8 module:main from:0x02079ce8 kind:load to:0x020e1fc0 module:overlay(0) from:0x02079cec kind:load to:0x027e0d40 module:dtcm from:0x02079cf0 kind:load to:0x027e0934 module:dtcm diff --git a/config/usa/arm9/overlays/ov002/symbols.txt b/config/usa/arm9/overlays/ov002/symbols.txt index 5f2c4302..49478e5d 100644 --- a/config/usa/arm9/overlays/ov002/symbols.txt +++ b/config/usa/arm9/overlays/ov002/symbols.txt @@ -164,9 +164,9 @@ func_ov002_020f41f8 kind:function(arm,size=0x14) addr:0x020f4198 func_ov002_020f420c kind:function(arm,size=0xb90) addr:0x020f41ac func_ov002_020f4d9c kind:function(arm,size=0x324) addr:0x020f4d3c func_ov002_020f50c0 kind:function(arm,size=0x2d0) addr:0x020f5060 -func_ov002_020f5390 kind:function(arm,size=0x174) addr:0x020f5330 -func_ov002_020f5504 kind:function(arm,size=0x1c4) addr:0x020f54a4 -func_ov002_020f56c8 kind:function(arm,size=0x19c) addr:0x020f5668 +_ZN18UnkStruct_0211a9ac19func_ov002_020f5390EPt kind:function(arm,size=0x174) addr:0x020f5330 +_ZN18UnkStruct_0211a9ac19func_ov002_020f5504EPt kind:function(arm,size=0x1c4) addr:0x020f54a4 +_ZN18UnkStruct_0211a9ac19func_ov002_020f56c8EPt kind:function(arm,size=0x19c) addr:0x020f5668 func_ov002_020f5864 kind:function(arm,size=0x50) addr:0x020f5804 func_ov002_020f58b4 kind:function(arm,size=0x248) addr:0x020f5854 func_ov002_020f5afc kind:function(arm,size=0x2c8) addr:0x020f5a9c diff --git a/config/usa/arm9/overlays/ov003/symbols.txt b/config/usa/arm9/overlays/ov003/symbols.txt index 1629ce3f..832e33c1 100644 --- a/config/usa/arm9/overlays/ov003/symbols.txt +++ b/config/usa/arm9/overlays/ov003/symbols.txt @@ -75,7 +75,7 @@ func_ov003_020f2944 kind:function(thumb,size=0x32) addr:0x020f28e4 func_ov003_020f2978 kind:function(thumb,size=0xa0) addr:0x020f2918 func_ov003_020f2a18 kind:function(arm,size=0x14) addr:0x020f29b8 func_ov003_020f2a2c kind:function(thumb,size=0xa0) addr:0x020f29cc -func_ov003_020f2acc kind:function(thumb,size=0xb8) addr:0x020f2a6c +_ZN18UnkStruct_020f297819func_ov003_020f2accEv kind:function(thumb,size=0xb8) addr:0x020f2a6c func_ov003_020f2b84 kind:function(thumb,size=0x46) addr:0x020f2b24 func_ov003_020f2bcc kind:function(thumb,size=0x50) addr:0x020f2b6c func_ov003_020f2c1c kind:function(arm,size=0x1c) addr:0x020f2bbc @@ -171,8 +171,8 @@ func_ov003_020f4510 kind:function(thumb,size=0x24) addr:0x020f44b0 func_ov003_020f4534 kind:function(thumb,size=0x24) addr:0x020f44d4 func_ov003_020f4558 kind:function(thumb,size=0xa8) addr:0x020f44f8 func_ov003_020f4600 kind:function(thumb,size=0x78) addr:0x020f45a0 -func_ov003_020f4678 kind:function(thumb,size=0x80) addr:0x020f4618 -func_ov003_020f46f8 kind:function(thumb,size=0x1e) addr:0x020f4698 +_ZN17UnkClass_027e105419func_ov003_020f4678Ei kind:function(thumb,size=0x80) addr:0x020f4618 +_ZN17UnkClass_027e105418func_ov003_02f46f8Ev kind:function(thumb,size=0x1e) addr:0x020f4698 func_ov003_020f4718 kind:function(thumb,size=0x48) addr:0x020f46b8 func_ov003_020f4760 kind:function(thumb,size=0x18) addr:0x020f4700 func_ov003_020f4778 kind:function(thumb,size=0x6c) addr:0x020f4718 @@ -184,7 +184,7 @@ func_ov003_020f48dc kind:function(thumb,size=0x2e) addr:0x020f487c func_ov003_020f490c kind:function(thumb,size=0x34) addr:0x020f48ac func_ov003_020f4940 kind:function(thumb,size=0x20) addr:0x020f48e0 func_ov003_020f4960 kind:function(arm,size=0xfc) addr:0x020f4900 -func_ov003_020f4a5c kind:function(arm,size=0xbc) addr:0x020f49fc +_ZN17UnkClass_027e105419func_ov003_020f4a5cEv kind:function(arm,size=0xbc) addr:0x020f49fc func_ov003_020f4b18 kind:function(thumb,size=0x64) addr:0x020f4ab8 func_ov003_020f4b7c kind:function(arm,size=0x44) addr:0x020f4b1c func_ov003_020f4bc0 kind:function(thumb,size=0x48) addr:0x020f4b60 @@ -355,23 +355,23 @@ func_ov003_020fab64 kind:function(thumb,size=0x240) addr:0x020faad8 func_ov003_020fada4 kind:function(thumb,size=0x2e) addr:0x020fad18 func_ov003_020fadd4 kind:function(thumb,size=0x20) addr:0x020fad48 func_ov003_020fadf4 kind:function(thumb,size=0x40) addr:0x020fad68 -func_ov003_020fae34 kind:function(thumb,size=0x30) addr:0x020fada8 -func_ov003_020fae64 kind:function(thumb,size=0x22) addr:0x020fadd8 +_ZN18UnkStruct_020fadf4D1Ev kind:function(thumb,size=0x30) addr:0x020fada8 +_ZN18UnkStruct_020fadf419func_ov003_020fae64Ev kind:function(thumb,size=0x22) addr:0x020fadd8 func_ov003_020fae88 kind:function(thumb,size=0x18) addr:0x020fadfc func_ov003_020faea0 kind:function(thumb,size=0x44) addr:0x020fae14 func_ov003_020faee4 kind:function(thumb,size=0x48) addr:0x020fae58 func_ov003_020faf2c kind:function(thumb,size=0x48) addr:0x020faea0 func_ov003_020faf74 kind:function(thumb,size=0x1c) addr:0x020faee8 -func_ov003_020faf90 kind:function(thumb,size=0x80) addr:0x020faf04 -func_ov003_020fb010 kind:function(thumb,size=0x44) addr:0x020faf84 +_ZN18UnkStruct_0211ac0c19func_ov003_020faf90Ev kind:function(thumb,size=0x80) addr:0x020faf04 +_ZN18UnkStruct_0211ac0c19func_ov003_020fb010Ev kind:function(thumb,size=0x44) addr:0x020faf84 func_ov003_020fb054 kind:function(thumb,size=0x30) addr:0x020fafc8 func_ov003_020fb084 kind:function(thumb,size=0x24) addr:0x020faff8 func_ov003_020fb0a8 kind:function(thumb,size=0x8) addr:0x020fb01c func_ov003_020fb0b0 kind:function(thumb,size=0x68) addr:0x020fb024 func_ov003_020fb118 kind:function(thumb,size=0x2e) addr:0x020fb08c func_ov003_020fb148 kind:function(arm,size=0x110) addr:0x020fb0bc -func_ov003_020fb258 kind:function(thumb,size=0x14) addr:0x020fb1cc -func_ov003_020fb26c kind:function(thumb,size=0x26) addr:0x020fb1e0 +_ZN18UnkStruct_0211ac0c19func_ov003_020fb258EPt kind:function(thumb,size=0x14) addr:0x020fb1cc +_ZN18UnkStruct_0211ac0c19func_ov003_020fb26cEv kind:function(thumb,size=0x26) addr:0x020fb1e0 func_ov003_020fb294 kind:function(thumb,size=0x38) addr:0x020fb208 func_ov003_020fb2cc kind:function(thumb,size=0x1a) addr:0x020fb240 func_ov003_020fb2e8 kind:function(thumb,size=0x88) addr:0x020fb25c diff --git a/config/usa/arm9/overlays/ov005/symbols.txt b/config/usa/arm9/overlays/ov005/symbols.txt index 5bf8daa0..2c4e1df0 100644 --- a/config/usa/arm9/overlays/ov005/symbols.txt +++ b/config/usa/arm9/overlays/ov005/symbols.txt @@ -1,5 +1,5 @@ func_ov005_02100ae0 kind:function(arm,size=0x9c) addr:0x02100a60 -func_ov005_02100b7c kind:function(arm,size=0x74) addr:0x02100afc +_ZN18UnkStruct_027e0d3819func_ov005_02100b7cEi kind:function(arm,size=0x74) addr:0x02100afc func_ov005_02100bf0 kind:function(arm,size=0xc0) addr:0x02100b70 func_ov005_02100cb0 kind:function(arm,size=0x110) addr:0x02100c30 func_ov005_02100dc0 kind:function(arm,size=0x4c) addr:0x02100d40 diff --git a/config/usa/arm9/overlays/ov007/relocs.txt b/config/usa/arm9/overlays/ov007/relocs.txt index a7ae5e24..c20f541d 100644 --- a/config/usa/arm9/overlays/ov007/relocs.txt +++ b/config/usa/arm9/overlays/ov007/relocs.txt @@ -39,7 +39,7 @@ from:0x02100e78 kind:arm_call to:0x02007ad8 module:main from:0x02100e90 kind:arm_call to:0x02007ad8 module:main from:0x02100eb8 kind:arm_call_thumb to:0x0200b944 module:main from:0x02100ec4 kind:arm_call_thumb to:0x0200b954 module:main -from:0x02100ed4 kind:load to:0x020575d4 module:main +from:0x02100ed4 kind:load to:0x020575cc add:8 module:main from:0x02100ed8 kind:load to:0x02102948 module:overlay(7) from:0x02100edc kind:load to:0x0210297c module:overlay(7) from:0x02100ee0 kind:load to:0x0210296c module:overlay(7) diff --git a/config/usa/arm9/overlays/ov008/relocs.txt b/config/usa/arm9/overlays/ov008/relocs.txt index 3c533c3f..8ef5c2f8 100644 --- a/config/usa/arm9/overlays/ov008/relocs.txt +++ b/config/usa/arm9/overlays/ov008/relocs.txt @@ -10,7 +10,7 @@ from:0x02112c70 kind:arm_call_thumb to:0x02031e18 module:main from:0x02112c98 kind:arm_call_thumb to:0x02027ab4 module:main from:0x02112cc4 kind:arm_call_thumb to:0x02027ab4 module:main from:0x02112ccc kind:arm_call_thumb to:0x02016fcc module:main -from:0x02112cdc kind:load to:0x020575d4 module:main +from:0x02112cdc kind:load to:0x020575cc add:8 module:main from:0x02112ce0 kind:load to:0x02113ac4 module:overlay(8) from:0x02112ce4 kind:load to:0x02113a80 module:overlay(8) from:0x02112ce8 kind:load to:0x02113a84 module:overlay(8) diff --git a/config/usa/arm9/overlays/ov009/delinks.txt b/config/usa/arm9/overlays/ov009/delinks.txt index 6ec6679e..c6cc8004 100644 --- a/config/usa/arm9/overlays/ov009/delinks.txt +++ b/config/usa/arm9/overlays/ov009/delinks.txt @@ -7,3 +7,4 @@ src/09_Adventure/Game/GameModeAdventure.cpp: .text start:0x02112ba0 end:0x0211324c + .data start:0x0211e600 end:0x0211e66c diff --git a/config/usa/arm9/overlays/ov009/symbols.txt b/config/usa/arm9/overlays/ov009/symbols.txt index 63774c30..5f6b1ae2 100644 --- a/config/usa/arm9/overlays/ov009/symbols.txt +++ b/config/usa/arm9/overlays/ov009/symbols.txt @@ -1,8 +1,8 @@ _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 +_ZN21UnkStruct_020f2978_00D1Ev kind:function(arm,size=0x4) addr:0x02112ce8 _ZN17GameModeAdventureD0Ev kind:function(thumb,size=0x88) addr:0x02112cec -_ZN17GameModeAdventureD2Ev kind:function(thumb,size=0x84) addr:0x02112d74 +_ZN17GameModeAdventureD1Ev 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 @@ -22,9 +22,9 @@ func_ov009_0211364c kind:function(thumb,size=0x2) addr:0x021135cc func_ov009_02113650 kind:function(arm,size=0x1c) addr:0x021135d0 func_ov009_0211366c kind:function(arm,size=0x2c) addr:0x021135ec func_ov009_02113698 kind:function(arm,size=0x2c) addr:0x02113618 -func_ov009_021136c4 kind:function(arm,size=0x24) addr:0x02113644 -func_ov009_021136e8 kind:function(arm,size=0x24) addr:0x02113668 -func_ov009_0211370c kind:function(arm,size=0x20) addr:0x0211368c +_ZN23UnkStruct_020fadf4_Base19func_ov009_021136c4Ev kind:function(arm,size=0x24) addr:0x02113644 +_ZN18UnkStruct_0211ac0c19func_ov009_021136e8Ev kind:function(arm,size=0x24) addr:0x02113668 +_ZN23UnkStruct_020fadf4_Base19func_ov009_0211370cEv kind:function(arm,size=0x20) addr:0x0211368c func_ov009_0211372c kind:function(arm,size=0x11c) addr:0x021136ac func_ov009_02113848 kind:function(thumb,size=0x20) addr:0x021137c8 func_ov009_02113868 kind:function(thumb,size=0x94) addr:0x021137e8 @@ -345,12 +345,12 @@ func_ov009_0211a880 kind:function(arm,size=0x2c) addr:0x0211a800 func_ov009_0211a8ac kind:function(arm,size=0xdc) addr:0x0211a82c func_ov009_0211a988 kind:function(arm,size=0x24) addr:0x0211a908 func_ov009_0211a9ac kind:function(thumb,size=0x88) addr:0x0211a92c -func_ov009_0211aa34 kind:function(thumb,size=0x60) addr:0x0211a9b4 +_ZN18UnkStruct_0211a9acD1Ev kind:function(thumb,size=0x60) addr:0x0211a9b4 func_ov009_0211aa94 kind:function(arm,size=0xf8) addr:0x0211aa14 func_ov009_0211ab8c kind:function(arm,size=0x3c) addr:0x0211ab0c func_ov009_0211abc8 kind:function(arm,size=0x44) addr:0x0211ab48 func_ov009_0211ac0c kind:function(thumb,size=0x20) addr:0x0211ab8c -func_ov009_0211ac2c kind:function(thumb,size=0x2a) addr:0x0211abac +_ZN18UnkStruct_0211ac0c19func_ov009_0211ac2cEv kind:function(thumb,size=0x2a) addr:0x0211abac func_ov009_0211ac58 kind:function(thumb,size=0x90) addr:0x0211abd8 func_ov009_0211ace8 kind:function(thumb,size=0x10) addr:0x0211ac68 func_ov009_0211acf8 kind:function(thumb,size=0xa0) addr:0x0211ac78 @@ -608,7 +608,7 @@ data_ov009_0211e690 kind:data(any) addr:0x0211e610 data_ov009_0211e694 kind:data(any) addr:0x0211e614 data_ov009_0211e698 kind:data(any) addr:0x0211e618 data_ov009_0211e69c kind:data(any) addr:0x0211e61c -data_ov009_0211e6c8 kind:data(any) addr:0x0211e648 +_ZTV17GameModeAdventure kind:data(any) addr:0x0211e648 data_ov009_0211e6ec kind:data(any) addr:0x0211e66c data_ov009_0211e6f0 kind:data(any) addr:0x0211e670 data_ov009_0211e6f4 kind:data(any) addr:0x0211e674 diff --git a/config/usa/arm9/overlays/ov010/relocs.txt b/config/usa/arm9/overlays/ov010/relocs.txt index fdb5ccdb..d9c167d5 100644 --- a/config/usa/arm9/overlays/ov010/relocs.txt +++ b/config/usa/arm9/overlays/ov010/relocs.txt @@ -16,7 +16,7 @@ from:0x02112c7c kind:thumb_call_arm to:0x02032a70 module:main from:0x02112c80 kind:thumb_call_arm to:0x020329ac module:main from:0x02112c90 kind:thumb_call_arm to:0x02032a70 module:main from:0x02112c96 kind:thumb_call_arm to:0x020d86b8 module:overlay(0) -from:0x02112ca0 kind:load to:0x020575d4 module:main +from:0x02112ca0 kind:load to:0x020575cc add:8 module:main from:0x02112ca4 kind:load to:0x0211e9e8 module:overlay(10) from:0x02112ca8 kind:load to:0x027e0618 module:dtcm from:0x02112cac kind:load to:0x027e0ce0 module:dtcm diff --git a/config/usa/arm9/overlays/ov011/relocs.txt b/config/usa/arm9/overlays/ov011/relocs.txt index 06712bfe..ddcb485d 100644 --- a/config/usa/arm9/overlays/ov011/relocs.txt +++ b/config/usa/arm9/overlays/ov011/relocs.txt @@ -6309,7 +6309,7 @@ from:0x0212b91c kind:thumb_call to:0x0211bfc8 module:overlay(11) from:0x0212b920 kind:thumb_call_arm to:0x0200c20c module:main from:0x0212b92c kind:thumb_call_arm to:0x0200ee38 module:main from:0x0212b932 kind:thumb_call_arm to:0x0200ef98 module:main -from:0x0212b93c kind:load to:0x020575d4 module:main +from:0x0212b93c kind:load to:0x020575cc add:8 module:main from:0x0212b940 kind:load to:0x02130768 module:overlay(11) from:0x0212b944 kind:load to:0x027e0ce0 module:dtcm from:0x0212b94c kind:load to:0x027e05f4 module:dtcm diff --git a/config/usa/arm9/overlays/ov013/relocs.txt b/config/usa/arm9/overlays/ov013/relocs.txt index 5be88d46..30ff1738 100644 --- a/config/usa/arm9/overlays/ov013/relocs.txt +++ b/config/usa/arm9/overlays/ov013/relocs.txt @@ -272,7 +272,7 @@ from:0x0211528c kind:arm_call to:0x020f7fcc module:overlay(1) from:0x021152ac kind:arm_call to:0x020f7ed4 module:overlay(1) from:0x021152c0 kind:arm_call to:0x020f4fc4 module:overlay(1) from:0x021152d8 kind:arm_call to:0x02115780 module:overlay(13) -from:0x021152f0 kind:load to:0x020575d4 module:main +from:0x021152f0 kind:load to:0x020575cc add:8 module:main from:0x021152f4 kind:load to:0x02116140 module:overlay(13) from:0x021152f8 kind:load to:0x02115338 module:overlay(13) from:0x021152fc kind:load to:0x02115358 module:overlay(13) diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index 851aaca6..b8b242ee 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1353,8 +1353,8 @@ 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 -_ZN8GameModeD0Ev kind:function(thumb,size=0x2) addr:0x0202c090 -_ZN8GameModeD2Ev kind:function(thumb,size=0xc) addr:0x0202c094 +_ZN8GameModeD1Ev kind:function(thumb,size=0x2) addr:0x0202c090 +_ZN8GameModeD0Ev 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 @@ -2645,7 +2645,7 @@ data_02057610 kind:data(any) addr:0x020575b0 data_02057618 kind:data(any) addr:0x020575b8 data_02057620 kind:data(any) addr:0x020575c0 data_02057628 kind:data(any) addr:0x020575c8 -data_02057634 kind:data(any) addr:0x020575d4 +_ZTV8GameMode kind:data(any) addr:0x020575cc data_02057650 kind:data(any) addr:0x020575f0 data_0205765c kind:data(any) addr:0x020575fc gBuildDate kind:data(any) addr:0x02057604 diff --git a/include/DTCM/UnkStruct_027e0d38.hpp b/include/DTCM/UnkStruct_027e0d38.hpp index ba565f60..f2f0ac51 100644 --- a/include/DTCM/UnkStruct_027e0d38.hpp +++ b/include/DTCM/UnkStruct_027e0d38.hpp @@ -1,20 +1,51 @@ #pragma once +#include "Save/AdventureFlags.hpp" #include "global.h" +#include "nds/math.h" #include "types.h" -struct UnkStruct_027e0d38_UnkC { - /* 00 */ unk32 mUnk_00; - - s32 func_ov000_020a5e9c(void); -}; - struct UnkStruct_027e0d38_Unk28 { - /* 00 */ unk8 mUnk_00[0x34]; - /* 34 */ bool mUnk_34; - /* 35 */ unk8 mUnk_35[0x27]; - /* 5c */ unk32 mUnk_5c[3]; - /* 68 */ + /* 000 */ unk32 *mUnk_00; + /* 004 */ unk32 mUnk_04; + /* 008 */ unk32 mUnk_08; + /* 00C */ unk32 mUnk_0c; + /* 010 */ unk32 mUnk_10; + /* 014 */ unk32 mUnk_14; + /* 018 */ unk32 mUnk_18; + /* 01C */ UnkStruct_027e0d38_UnkC mUnk_1c; + /* 020 */ unk32 mUnk_20; + /* 024 */ unk32 mUnk_24; + /* 028 */ unk32 mUnk_28; + /* 02C */ unk8 mUnk_2c; + /* 02D */ unk8 mUnk_2d; + /* 02E */ u8 mUnk_2e; + /* 02F */ unk8 mUnk_2f; + /* 030 */ unk32 mUnk_30; + /* 034 */ bool mUnk_34; + /* 035 */ unk8 mUnk_35; + /* 036 */ unk16 mUnk_36; + /* 038 */ Vec3p mUnk_38; + /* 044 */ UnkStruct_027e0d38_UnkC mUnk_44; + /* 048 */ unk8 mUnk_48[0x50 - 0x48]; + /* 050 */ unk8 mUnk_50; + /* 051 */ unk8 mUnk_51; + /* 052 */ unk8 mUnk_52; + /* 053 */ unk8 mUnk_53; + /* 054 */ unk8 mUnk_54; + /* 055 */ unk8 mUnk_55; + /* 056 */ u8 mUnk_56; + /* 057 */ unk8 mUnk_57; + /* 058 */ unk32 mUnk_58; + /* 05c */ UnkStruct_02082348_04 mUnk_5c; + /* 070 */ FlagsUnk2 mUnk_70; + /* 088 */ unk8 pad1[0x9A - 0x88]; + /* 09a */ u8 mUnk_9a; + /* 09b */ u8 mUnk_9b; + /* 09c */ unk32 mUnk_9c; + /* 0a0 */ Vec3p mUnk_a0; + /* 0ac */ unk32 mUnk_ac; + /* 110 */ }; struct UnkStruct_027e0d38 { @@ -23,7 +54,7 @@ struct UnkStruct_027e0d38 { /* 04 */ unk32 mUnk_04; /* 08 */ unk32 mUnk_08; /* 0c */ UnkStruct_027e0d38_UnkC mUnk_0c; - /* 10 */ unk32 mUnk_10; + /* 10 */ unk32 mUnk_10; // `UnkStruct_02082348_04`? /* 14 */ unk32 mUnk_14; /* 18 */ unk32 mUnk_18; /* 1c */ unk16 mUnk_1c; @@ -39,6 +70,8 @@ struct UnkStruct_027e0d38 { s32 func_ov000_02078b40(); unk8 func_ov000_02078b64(); bool func_ov000_02078b88(); + void func_ov004_02100bcc(); + unk32 func_ov005_02100b7c(unk32 param_1); }; extern UnkStruct_027e0d38 *data_027e0d38; diff --git a/include/Game/Game.hpp b/include/Game/Game.hpp index 95d49801..8bb41b95 100644 --- a/include/Game/Game.hpp +++ b/include/Game/Game.hpp @@ -21,7 +21,7 @@ public: /* 0fe */ unk16 mUnk_0fe; /* 100 */ unk8 mUnk_100; /* 101 */ s8 mUnk_101; - /* 102 */ unk8 mUnk_102; + /* 102 */ bool mUnk_102; /* 103 */ u8 mUnk_103; /* 104 */ diff --git a/include/Game/GameMode.hpp b/include/Game/GameMode.hpp index 6888b023..2a80d115 100644 --- a/include/Game/GameMode.hpp +++ b/include/Game/GameMode.hpp @@ -5,10 +5,22 @@ #include "System/SysNew.hpp" +typedef unk32 GameModeId; +enum GameModeId_ { + GameModeId_Load = 0, + GameModeId_StartupScreen = 1, + GameModeId_Adventure = 2, + GameModeId_FileSelect = 3, + GameModeId_WFCSetup = 4, + GameModeId_DownloadPlay = 5, + GameModeId_Battle = 6, + GameModeId_Contact = 7 +}; + class GameMode : public SysObject { public: /* 000 (vtable) */ - /* 004 */ unk32 mUnk_000; + /* 004 */ GameModeId mModeId; /* 008 */ /* 00 */ virtual ~GameMode(); @@ -20,8 +32,8 @@ public: /* 1c */ inline GameMode() {} - inline GameMode(unk32 param1) : - mUnk_000(param1) {} + inline GameMode(GameModeId modeId) : + mModeId(modeId) {} void func_0202c0b8(); }; diff --git a/include/Game/GameModeAdventure.hpp b/include/Game/GameModeAdventure.hpp index a004fb70..934a6a10 100644 --- a/include/Game/GameModeAdventure.hpp +++ b/include/Game/GameModeAdventure.hpp @@ -4,13 +4,103 @@ #include "types.h" #include "Game/GameModePlay.hpp" +#include "Render/FadeControl.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_02037750.hpp" + +class UnkStruct_020fadf4_Base : public SysObject { +public: + unk32 func_ov009_021136c4(); + unk32 func_ov009_0211370c(); +}; + +class UnkStruct_0211a9ac : public SysObject { +public: + /* 000 */ unk8 pad[0x354]; + /* 354 */ + + UnkStruct_0211a9ac(); + ~UnkStruct_0211a9ac(); + + void func_ov002_020f50c0(unk32 param_1); + void func_ov002_020f5390(u16 *param_1); + void func_ov002_020f5504(u16 *param_1); + void func_ov002_020f56c8(u16 *param_1); +}; + +// ov003 +class UnkStruct_020fadf4 : public UnkStruct_020fadf4_Base { +public: + /* 00 */ unk8 pad[0x4c]; + /* 4c */ + + UnkStruct_020fadf4(); + UnkStruct_020fadf4(UnkStruct_0211a9ac *param_1); + ~UnkStruct_020fadf4(); + + void func_ov009_021135d0(); + void func_ov003_020fae64(); +}; + +class UnkStruct_020f2978_00 { +public: + /* 000 (vtable) */ + /* 04 */ unk8 pad[0x14]; + /* 18 */ + + /* 00 */ virtual void vfunc_00(); // func_ov000_020d0670 + /* 04 */ virtual void vfunc_04(); // func_ov000_020cff1c + /* 08 */ virtual void vfunc_08(); // func_ov000_020d0000 + /* 0c */ virtual void vfunc_0c(); // func_ov000_020d0048 + /* 10 */ virtual void vfunc_10(); // func_ov000_020cff8c + + UnkStruct_020f2978_00(); + ~UnkStruct_020f2978_00(); +}; + +// ov003 +class UnkStruct_020f2978 : public SysObject { +public: + /* 00 */ UnkStruct_020f2978_00 mUnk_00[2]; + /* 30 */ UnkStruct_02037750 mUnk_30; + /* 50 */ unk8 pad2[0x88 - 0x50]; + /* 88 */ + + UnkStruct_020f2978(); + + unk32 func_ov003_020f2a2c(); + unk32 func_ov003_020f2acc(); +}; + +class UnkStruct_0211ac0c : public UnkStruct_020fadf4_Base { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ FadeControl mUnk_04; + /* 28 */ unk8 pad[0x44 - 0x28]; + /* 44 */ + + UnkStruct_0211ac0c(); + UnkStruct_0211ac0c(UnkStruct_020f2978 *param_1); + + void func_ov009_0211372c(); + void func_ov003_020fb26c(); + unk32 func_ov009_021136e8(); + unk32 func_ov003_020fb148(); + unk32 func_ov003_020fb258(u16 *param_1); + void func_ov009_0211ac2c(); + void func_ov003_020faf90(); + void func_ov003_020fb010(); +}; class GameModeAdventure : public GameModePlay { +public: /* 000 (base) */ - /* 008 */ unk8 mUnk_008[0x10]; + /* 008 */ UnkStruct_0211a9ac *mUnk_008; + /* 00c */ UnkStruct_020fadf4 *mUnk_00c; + /* 010 */ UnkStruct_020f2978 *mUnk_010; + /* 014 */ UnkStruct_0211ac0c *mUnk_014; /* 018 */ -public: /* 00 */ virtual ~GameModeAdventure() override; /* 08 */ virtual unk32 vfunc_08(unk32 param1) override; /* 0c */ virtual void vfunc_0c(u16 *param1) override; diff --git a/include/Message/MsgProc.hpp b/include/Message/MsgProc.hpp index bfdbc86b..00536c57 100644 --- a/include/Message/MsgProc.hpp +++ b/include/Message/MsgProc.hpp @@ -120,11 +120,13 @@ extern struct TouchControl gTouchControl; class UnkClass_027e0e28 { public: unk32 func_ov000_0207bc48(); + void func_ov000_0207bc9c(); }; extern UnkClass_027e0e28 *data_027e0e28; extern u8 data_027e0c54; extern unk32 *data_ov009_0211f5b4; extern "C" unk32 func_ov003_020f3f94(unk32 *); +extern "C" void func_ov003_020f4060(unk32 **); extern unk32 *data_02057ed4; // see Actor.cpp @@ -161,8 +163,12 @@ public: void func_ov003_020f4874(void); void func_ov003_020f4760(u8, unk32); + unk32 func_ov003_020f4960(void); + void func_ov003_020f4a5c(void); + void func_ov003_02f46f8(void); + void func_ov003_020f4678(unk32); }; -extern UnkClass_027e1054 data_027e1054; +extern UnkClass_027e1054 *data_027e1054; class UnkClass_ov000_020eec9c { public: diff --git a/include/Save/AdventureFlags.hpp b/include/Save/AdventureFlags.hpp index 39d2e409..33f7c578 100644 --- a/include/Save/AdventureFlags.hpp +++ b/include/Save/AdventureFlags.hpp @@ -57,21 +57,35 @@ enum AdventureFlag_ { /* 0x187 */ AdventureFlag_COUNT = 391, }; -struct FlagsUnk2 { +struct UnkStruct_027e0d38_UnkC { /* 00 */ unk32 mUnk_00; - /* 04 */ unk32 mUnk_04; - /* 08 */ unk32 mUnk_08; - /* 0c */ unk32 mUnk_0c; - /* 10 */ unk16 mUnk_10; - /* 12 */ unk8 mUnk_12; - /* 13 */ unk8 mUnk_13; - /* 14 */ unk8 mUnk_14; - /* 15 */ unk8 mUnk_15; - /* 16 */ unk8 mUnk_16; - /* 17 */ unk8 mUnk_17; + + s32 func_ov000_020a5e9c(void); +}; + +class UnkStruct_02082348_04 { +public: + /* 00 */ unk32 mUnk_00; + /* 00 */ unk32 mUnk_04; + /* 00 */ unk32 mUnk_08; + /* 0c */ unk16 mUnk_0c; + /* 0e */ u8 mUnk_0e; + /* 0f */ u8 mUnk_0f; + /* 10 */ u8 mUnk_10; + /* 11 */ u8 mUnk_11; + /* 12 */ u8 mUnk_12; + /* 13 */ u8 mUnk_13; + /* 14 */ +}; + +struct FlagsUnk2 { + /* 00 */ UnkStruct_027e0d38_UnkC mUnk_00; + /* 04 */ UnkStruct_02082348_04 mUnk_04; /* 18 */ ~FlagsUnk2(); + void func_ov000_02078bf0(FlagsUnk2 *param_2); + void func_ov004_02100ae0(); }; struct FlagsUnk { diff --git a/include/System/SysNew.hpp b/include/System/SysNew.hpp index 184c27fb..df660a1b 100644 --- a/include/System/SysNew.hpp +++ b/include/System/SysNew.hpp @@ -15,6 +15,8 @@ void SysDelete(void *ptr); void *func_0202e99c(s32 length); void *func_0202e9bc(s32 length); +extern u32 *data_027e0ce0[]; + class SysObject { public: static void *operator new(unsigned long length, u32 *id, u32 idLength); diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp index 0351a7a6..dcc1124e 100644 --- a/src/00_Core/Map/MapManager.cpp +++ b/src/00_Core/Map/MapManager.cpp @@ -84,20 +84,6 @@ struct astruct_16 { /* 2c */ }; // What is this struct? -// This might be FlagsUnk2 -struct UnkStruct_02082348 { - /* 00 */ unk32 mUnk_00; - /* 04 */ unk32 mUnk_04; - /* 08 */ unk32 mUnk_08; - /* 0c */ unk32 mUnk_0c; - /* 10 */ unk16 mUnk_10; - /* 12 */ u8 mUnk_12; - /* 13 */ u8 mUnk_13; - /* 14 */ u8 mUnk_14; - /* 15 */ u8 mUnk_15; - /* 16 */ -}; - struct UnkStruct_027e077c { /* 00 */ unk32 mUnk_00; /* 04 */ unk32 mUnk_04; @@ -203,17 +189,17 @@ ARM void MapManager::func_ov00_020820fc(s32 param_2, unk32 param_3, unk32 param_ ARM void MapManager::func_ov00_0208210c(unk32 param_2, unk32 *param_3) { void *pvVar3; unk32 uVar2; - UnkStruct_02082348 local_40[2]; + FlagsUnk2 local_40[2]; - local_40[1].mUnk_00 = 0x47; - local_40[1].mUnk_04 = 0; - local_40[1].mUnk_08 = 0; - local_40[1].mUnk_0c = -2; - local_40[1].mUnk_10 = 0; - local_40[1].mUnk_12 = -1; - local_40[1].mUnk_13 = 0; - local_40[1].mUnk_14 = 0; - local_40[1].mUnk_15 = 0; + local_40[1].mUnk_00.mUnk_00 = 0x47; + local_40[1].mUnk_04.mUnk_00 = 0; + local_40[1].mUnk_04.mUnk_04 = 0; + local_40[1].mUnk_04.mUnk_08 = -2; + local_40[1].mUnk_04.mUnk_0c = 0; + local_40[1].mUnk_04.mUnk_0e = -1; + local_40[1].mUnk_04.mUnk_0f = 0; + local_40[1].mUnk_04.mUnk_10 = 0; + local_40[1].mUnk_04.mUnk_11 = 0; if (param_2 != 0) { *param_3 = 0xb; *(unk8 *) (param_3 + 1) = 2; @@ -221,8 +207,8 @@ ARM void MapManager::func_ov00_0208210c(unk32 param_2, unk32 *param_3) { } else { this->func_ov00_02082348((unk32 *) &local_40[1]); *param_3 = ((UnkStruct_027e0d38_UnkC *) &local_40[1])->func_ov000_020a5e9c(); - *(unk8 *) (param_3 + 1) = local_40[1].mUnk_12; - *(u8 *) ((int) param_3 + 5) = local_40[1].mUnk_13; + *(unk8 *) (param_3 + 1) = local_40[1].mUnk_04.mUnk_0e; + *(u8 *) ((int) param_3 + 5) = local_40[1].mUnk_04.mUnk_0f; } param_3[2] = ((UnkStruct_027e0d38_UnkC *) ((unk32) (data_027e0d38->mUnk_28) + 0x1c))->func_ov000_020a5e9c(); *(u8 *) (param_3 + 4) = *(u8 *) ((int) data_027e0d38->mUnk_28 + 0x2e); @@ -239,19 +225,19 @@ ARM void MapManager::func_ov00_0208210c(unk32 param_2, unk32 *param_3) { param_3[0xb] = *(unk32 *) ((int) pvVar3 + 0x64); *(unk16 *) ((int) param_3 + 0x16) = *(unk16 *) ((int) data_027e0d38->mUnk_28 + 0x68); pvVar3 = data_027e0d38->mUnk_28; - local_40[0].mUnk_00 = *(unk32 *) ((int) pvVar3 + 0x70); - local_40[0].mUnk_04 = *(unk32 *) ((int) pvVar3 + 0x74); - local_40[0].mUnk_08 = *(unk32 *) ((int) pvVar3 + 0x78); - local_40[0].mUnk_0c = *(unk32 *) ((int) pvVar3 + 0x7c); - local_40[0].mUnk_10 = *(unk16 *) ((int) pvVar3 + 0x80); - local_40[0].mUnk_12 = *(u8 *) ((int) pvVar3 + 0x82); - local_40[0].mUnk_13 = *(u8 *) ((int) pvVar3 + 0x83); - local_40[0].mUnk_14 = *(u8 *) ((int) pvVar3 + 0x84); - local_40[0].mUnk_15 = *(u8 *) ((int) pvVar3 + 0x85); + local_40[0].mUnk_00.mUnk_00 = *(unk32 *) ((int) pvVar3 + 0x70); + local_40[0].mUnk_04.mUnk_00 = *(unk32 *) ((int) pvVar3 + 0x74); + local_40[0].mUnk_04.mUnk_04 = *(unk32 *) ((int) pvVar3 + 0x78); + local_40[0].mUnk_04.mUnk_08 = *(unk32 *) ((int) pvVar3 + 0x7c); + local_40[0].mUnk_04.mUnk_0c = *(unk16 *) ((int) pvVar3 + 0x80); + local_40[0].mUnk_04.mUnk_0e = *(u8 *) ((int) pvVar3 + 0x82); + local_40[0].mUnk_04.mUnk_0f = *(u8 *) ((int) pvVar3 + 0x83); + local_40[0].mUnk_04.mUnk_10 = *(u8 *) ((int) pvVar3 + 0x84); + local_40[0].mUnk_04.mUnk_11 = *(u8 *) ((int) pvVar3 + 0x85); uVar2 = ((UnkStruct_027e0d38_UnkC *) &local_40[0])->func_ov000_020a5e9c(); param_3[0x70] = uVar2; - *(u8 *) ((int) param_3 + 0x1be) = local_40[0].mUnk_12; - *(u8 *) ((int) param_3 + 0x1bf) = local_40[0].mUnk_13; + *(u8 *) ((int) param_3 + 0x1be) = local_40[0].mUnk_04.mUnk_0e; + *(u8 *) ((int) param_3 + 0x1bf) = local_40[0].mUnk_04.mUnk_0f; func_ov000_02096324(data_027e0f70, param_3); func_ov000_0209d6e8(data_027e0f7c, param_3); if (this->mCourse->mType != CourseType_TempleOfTheOceanKing) { @@ -268,16 +254,16 @@ ARM void MapManager::func_ov00_0208230c(s32 *param_2) { } ARM void MapManager::func_ov00_02082348(unk32 *param_2) { - UnkStruct_02082348 unkStruct; - unkStruct.mUnk_00 = 0x47; - unkStruct.mUnk_04 = 0; - unkStruct.mUnk_08 = 0; - unkStruct.mUnk_0c = -2; - unkStruct.mUnk_10 = 0; - unkStruct.mUnk_12 = -1; - unkStruct.mUnk_13 = 0; - unkStruct.mUnk_14 = 0; - unkStruct.mUnk_15 = 0; + FlagsUnk2 unkStruct; + unkStruct.mUnk_00.mUnk_00 = 0x47; + unkStruct.mUnk_04.mUnk_00 = 0; + unkStruct.mUnk_04.mUnk_04 = 0; + unkStruct.mUnk_04.mUnk_08 = -2; + unkStruct.mUnk_04.mUnk_0c = 0; + unkStruct.mUnk_04.mUnk_0e = -1; + unkStruct.mUnk_04.mUnk_0f = 0; + unkStruct.mUnk_04.mUnk_10 = 0; + unkStruct.mUnk_04.mUnk_11 = 0; this->func_ov00_0208230c((s32 *) &unkStruct); func_ov000_02078bf0((s32 *) &unkStruct, param_2); } @@ -766,9 +752,9 @@ ARM void MapManager::func_ov00_0208315c(s32 *param_2, s32 *param_3) { if (*piVar4 == -2 || piVar4 == piVar2) { pvVar3 = data_027e0d38->mUnk_28; - local_2c.x = pvVar3->mUnk_5c[0]; - local_2c.y = pvVar3->mUnk_5c[1]; - local_2c.z = pvVar3->mUnk_5c[2]; + local_2c.x = pvVar3->mUnk_5c.mUnk_00; + local_2c.y = pvVar3->mUnk_5c.mUnk_04; + local_2c.z = pvVar3->mUnk_5c.mUnk_08; this->func_ov00_02083298((u32) * (u8 *) (*(s32 *) data_027e0d38->mUnk_28 + 0x56), &local_2c, param_2, param_3); return; } diff --git a/src/09_Adventure/Game/GameModeAdventure.cpp b/src/09_Adventure/Game/GameModeAdventure.cpp index bdf61424..dbfa9690 100644 --- a/src/09_Adventure/Game/GameModeAdventure.cpp +++ b/src/09_Adventure/Game/GameModeAdventure.cpp @@ -1,13 +1,263 @@ -#include "Game/GameModeAdventure.hpp" +#include "global.h" -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() {} +#include "DTCM/UnkStruct_027e0d38.hpp" +#include "Game/Game.hpp" +#include "Game/GameModeAdventure.hpp" +#include "Message/MsgProc.hpp" +#include "Save/AdventureFlags.hpp" +#include "System/OverlayManager.hpp" + +extern unk32 data_027e1044; +extern unk32 data_ov000_020eab04; +extern unk32 data_ov000_020eab08; +extern unk8 data_ov000_020eab09; + +extern "C" void *func_ov003_020f4510(); +extern "C" void func_ov000_02078b0c(); +extern "C" void func_ov003_020f4534(); + +extern UnkStruct_0211ac0c data_ov009_0211f5dc; + +extern "C" void func_ov029_0216dcf4(unk32 *, unk32); +extern unk32 data_ov022_0217a4ac; + +extern "C" void func_ov015_0217707c(unk32 *); +extern unk32 data_027e1060; + +extern "C" void func_ov005_0210274c(void *, unk32, u16 *); +extern "C" void func_ov005_021026f8(void *, unk32, u16 *); +extern "C" void func_ov005_02102828(void *, unk32, u16 *); +extern "C" void func_ov003_020f40c0(unk32 **, u16 *); +extern "C" void func_ov003_020f40e8(unk32 **, u16 *); + +THUMB GameModeAdventure *GameModeAdventure::Create(unk32 param1) { + return new(data_027e0ce0[1], 4) GameModeAdventure(param1); +} + +// non-matching +THUMB GameModeAdventure::GameModeAdventure(unk32 param1) : + GameModePlay(param1) { + FlagsUnk2 local_28; + + this->mUnk_008 = new(data_027e0ce0[1], 4) UnkStruct_0211a9ac(); + this->mUnk_00c = new(data_027e0ce0[1], 4) UnkStruct_020fadf4(this->mUnk_008); + this->mUnk_010 = new(data_027e0ce0[1], 4) UnkStruct_020f2978(); + this->mUnk_014 = new(data_027e0ce0[1], 4) UnkStruct_0211ac0c(this->mUnk_010); + data_027e1044 = param1; + func_ov003_020f4510(); + + local_28.mUnk_00.mUnk_00 = 0x47; + local_28.mUnk_04.mUnk_00 = 0; + local_28.mUnk_04.mUnk_04 = 0; + local_28.mUnk_04.mUnk_08 = -2; + local_28.mUnk_04.mUnk_0c = 0; + local_28.mUnk_04.mUnk_0e = -1; + local_28.mUnk_04.mUnk_0f = 0; + local_28.mUnk_04.mUnk_10 = 0; + local_28.mUnk_04.mUnk_11 = 0; + + if (gGame.mUnk_102 != 0) { + AdventureFlags::Get_FlagsUnk_00(0x17, &local_28); + } else { + if (gGame.mPrevModeId == 1) { + AdventureFlags::Get_FlagsUnk_00(0x17, &local_28); + } else if (data_ov000_020eab04 == 0x47) { + AdventureFlags::Get_FlagsUnk_00(0x01, &local_28); + } else { + unk32 index = AdventureFlags::func_ov00_02097ecc(); + + if (index != 0x21) { + AdventureFlags::Get_FlagsUnk_00(index, &local_28); + } else { + local_28.mUnk_00.mUnk_00 = data_ov000_020eab04; + local_28.mUnk_04.mUnk_0e = data_ov000_020eab08; + local_28.mUnk_04.mUnk_0f = data_ov000_020eab09; + } + } + } + + local_28.func_ov004_02100ae0(); + data_027e0d38->func_ov004_02100bcc(); + gOverlayManager.LoadIfNotLoaded(OverlayIndex_2, OverlayId_05); +} + +ARM UnkStruct_020f2978_00::~UnkStruct_020f2978_00() {} + +// non-matching +THUMB GameModeAdventure::~GameModeAdventure() { + func_ov000_02078b0c(); + func_ov003_020f4534(); + data_027e1044 = 0; + + if (this->mUnk_014 != NULL) { + this->mUnk_014->mUnk_04.Unregister(); + delete this->mUnk_014; + } + + delete this->mUnk_010; + delete this->mUnk_00c; + delete this->mUnk_008; +} + +// non-matching +ARM unk32 GameModeAdventure::vfunc_08(unk32 param1) { + unk32 uVar2 = 0; + + if (data_027e0d38->mUnk_14 == 1) { + uVar2 = data_027e0d38->func_ov005_02100b7c(param1); + } else { + if (data_027e0d38->mUnk_0c.func_ov000_020a5e9c() == 2) { + func_ov015_0217707c(&data_027e1060); + uVar2 = data_027e0d38->func_ov005_02100b7c(param1); + } else { + if (this->mUnk_00c->func_ov009_0211370c() == 0) { + if (this->mUnk_00c->func_ov009_021136c4() != 0) { + this->mUnk_008->func_ov002_020f50c0(param1); + } else { + if (data_ov009_0211f5dc.func_ov009_021136e8() != 0) { + if (this->mUnk_014->func_ov009_0211370c() == 0) { + if (this->mUnk_014->func_ov009_021136c4() != 0) { + uVar2 = this->mUnk_010->func_ov003_020f2a2c(); + } else { + uVar2 = data_027e0d38->func_ov005_02100b7c(param1); + + if (data_027e0d38->mUnk_14 == 1) { + return uVar2; + } + + if (gOverlayManager.mLoadedOverlays[OverlayIndex_6] == OverlayId_29) { + func_ov029_0216dcf4(&data_ov022_0217a4ac, param1); + } else { + func_ov003_020f4060(&data_ov009_0211f5b4); + } + } + } + } + + data_027e1054->func_ov003_020f4960(); + } + + data_ov009_0211f5dc.func_ov003_020fb148(); + } + + this->mUnk_00c->func_ov009_021135d0(); + this->mUnk_014->func_ov009_0211372c(); + data_027e0e28->func_ov000_0207bc9c(); + } + } + + return uVar2; +} + +ARM void GameModeAdventure::vfunc_0c(u16 *param1) { + if (data_027e0d38->mUnk_14 == 1) { + func_ov005_021026f8(data_027e0d38->mUnk_24, data_027e0d38->mUnk_04, param1); + return; + } + + if (this->mUnk_00c->func_ov009_0211370c() != 0) { + return; + } + + if (this->mUnk_00c->func_ov009_021136c4() != 0) { + this->mUnk_008->func_ov002_020f5390(param1); + return; + } + + if (data_ov009_0211f5dc.func_ov009_021136e8() == 0) { + return; + } + + if (this->mUnk_014->func_ov009_021136e8() == 0) { + return; + } + + func_ov005_021026f8(data_027e0d38->mUnk_24, data_027e0d38->mUnk_04, param1); + func_ov003_020f40c0(&data_ov009_0211f5b4, param1); + data_027e1054->func_ov003_020f4a5c(); +} + +ARM void GameModeAdventure::vfunc_10(u16 *param1) { + if (data_027e0d38->mUnk_14 == 1) { + func_ov005_0210274c(data_027e0d38->mUnk_24, data_027e0d38->mUnk_04, param1); + return; + } + + if (this->mUnk_00c->func_ov009_0211370c() != 0) { + return; + } + + if (this->mUnk_00c->func_ov009_021136c4() != 0) { + this->mUnk_008->func_ov002_020f5504(param1); + return; + } + + if (this->mUnk_014->func_ov009_0211370c() != 0) { + return; + } + + if (this->mUnk_014->func_ov009_021136c4() != 0) { + this->mUnk_010->func_ov003_020f2acc(); + return; + } + + func_ov005_0210274c(data_027e0d38->mUnk_24, data_027e0d38->mUnk_04, param1); + func_ov003_020f40e8(&data_ov009_0211f5b4, param1); + + if (data_ov009_0211f5dc.func_ov009_021136c4() == 0) { + return; + } + + data_ov009_0211f5dc.func_ov003_020fb258(param1); +} + +ARM void GameModeAdventure::vfunc_14(u16 *param1) { + if (data_027e0d38->mUnk_14 == 1) { + func_ov005_02102828(data_027e0d38->mUnk_24, data_027e0d38->mUnk_04, param1); + return; + } + + if (this->mUnk_00c->func_ov009_0211370c() != 0) { + return; + } + + if (this->mUnk_00c->func_ov009_021136c4() != 0) { + this->mUnk_008->func_ov002_020f56c8(param1); + return; + } + + if (data_ov009_0211f5dc.func_ov009_0211370c() != 0) { + return; + } + + if (data_ov009_0211f5dc.func_ov009_021136c4() != 0) { + data_ov009_0211f5dc.func_ov003_020fb26c(); + return; + } + + if (this->mUnk_014->func_ov009_021136e8() == 0) { + return; + } + + func_ov005_02102828(data_027e0d38->mUnk_24, data_027e0d38->mUnk_04, param1); +} + +THUMB void GameModeAdventure::vfunc_1c() { + this->GameModePlay::vfunc_1c(); + + if (data_027e0d38->mUnk_14 != 1) { + this->mUnk_00c->func_ov003_020fae64(); + data_ov009_0211f5dc.func_ov003_020faf90(); + this->mUnk_014->func_ov009_0211ac2c(); + data_027e1054->func_ov003_020f4678(1); + } +} + +THUMB void GameModeAdventure::vfunc_20() { + if (data_027e0d38->mUnk_14 != 1) { + data_027e1054->func_ov003_02f46f8(); + data_ov009_0211f5dc.func_ov003_020fb010(); + } + + this->GameModePlay::vfunc_20(); +} diff --git a/src/Main/Game/GameMode.cpp b/src/Main/Game/GameMode.cpp index fa86d5bc..fd68c708 100644 --- a/src/Main/Game/GameMode.cpp +++ b/src/Main/Game/GameMode.cpp @@ -1,8 +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() {} +THUMB GameMode::~GameMode() {} +THUMB void GameMode::func_0202c0b8() {} +THUMB void GameMode::vfunc_0c(u16 *param1) {} +THUMB void GameMode::vfunc_10(u16 *param1) {} +THUMB void GameMode::vfunc_14(u16 *param1) {} +THUMB void GameMode::vfunc_18() {} diff --git a/src/Main/Unknown/UnkStruct_020397f8.cpp b/src/Main/Unknown/UnkStruct_020397f8.cpp index dba982d6..ede7e671 100644 --- a/src/Main/Unknown/UnkStruct_020397f8.cpp +++ b/src/Main/Unknown/UnkStruct_020397f8.cpp @@ -961,7 +961,7 @@ ARM bool UnkStruct_020397f8::func_0203c1a0() { pVar1 = (s8 *) data_027e103c->func_ov000_020cef9c(); iVar3 = data_027e0f7c.func_ov000_0209d90c(pVar1[0x24F], 0); - data_027e1054.func_ov003_020f4760(iVar3[1], 0); + data_027e1054->func_ov003_020f4760(iVar3[1], 0); data_ov000_020eec9c.func_ov000_020d77e4(6); data_027e103c->func_ov000_020cfb58(); @@ -977,7 +977,7 @@ ARM bool UnkStruct_020397f8::func_0203c1a0() { } ARM bool UnkStruct_020397f8::func_0203c25c(UnkStruct_020397f8 *param1) { - if (data_027e1054.mUnk_00->mUnk_00->mUnk_95 != 0) { + if (data_027e1054->mUnk_00->mUnk_00->mUnk_95 != 0) { return false; }