diff --git a/config/eur/arm9/overlays/ov000/delinks.txt b/config/eur/arm9/overlays/ov000/delinks.txt index 5be51f0bf..ef0d62e0d 100644 --- a/config/eur/arm9/overlays/ov000/delinks.txt +++ b/config/eur/arm9/overlays/ov000/delinks.txt @@ -157,3 +157,18 @@ src/00_Core/Game/GameModePlay.cpp: src/00_Core/Render/ModelRender.cpp: .text start:0x020a956c end:0x020a99e0 .data start:0x020e5818 end:0x020e5860 + +src/00_Core/Render/MapModelRender.cpp: + complete + .text start:0x0209d944 end:0x0209da10 + .data start:0x020e4bb0 end:0x020e4bf8 + +src/00_Core/Render/SkyboxModelRender.cpp: + .text start:0x020a4b4c end:0x020a4c38 + .data start:0x020e518c end:0x020e51e8 + .init start:0x020e120c end:0x020e1250 + +src/00_Core/Render/MistModelRender.cpp: + complete + .text start:0x020a4c38 end:0x020a4d3c + .data start:0x020e51e8 end:0x020e5230 \ No newline at end of file diff --git a/config/eur/arm9/overlays/ov000/relocs.txt b/config/eur/arm9/overlays/ov000/relocs.txt index 971f6546c..c5d80ab9e 100644 --- a/config/eur/arm9/overlays/ov000/relocs.txt +++ b/config/eur/arm9/overlays/ov000/relocs.txt @@ -3559,7 +3559,7 @@ from:0x0209d920 kind:arm_call to:0x020a41cc module:overlay(0) from:0x0209d93c kind:arm_call to:0x020a41d8 module:overlay(0) from:0x0209d94c kind:arm_call_thumb to:0x020a956c module:overlay(0) from:0x0209d970 kind:arm_call to:0x02018cb8 module:main -from:0x0209d97c kind:load to:0x020e4bb8 module:overlay(0) +from:0x0209d97c kind:load to:0x020e4bb0 add:8 module:overlay(0) from:0x0209d980 kind:load to:0x0209d9e0 module:overlay(0) from:0x0209d98c kind:arm_call_thumb to:0x020a95ec module:overlay(0) from:0x0209d9a0 kind:arm_call_thumb to:0x020a95ec module:overlay(0) @@ -3633,7 +3633,7 @@ from:0x0209e8d0 kind:arm_call to:0x0202e9dc module:main from:0x0209e8dc kind:arm_call to:0x0209e8e8 module:overlay(0) from:0x0209e8e4 kind:load to:0x027e0fe0 module:dtcm from:0x0209e8f0 kind:arm_call to:0x020c1554 module:overlay(0) -from:0x0209e958 kind:load to:0x020e4c50 module:overlay(0) +from:0x0209e958 kind:load to:0x020e4c48 add:8 module:overlay(0) from:0x0209e964 kind:arm_call to:0x020c1730 module:overlay(0) from:0x0209e978 kind:arm_call to:0x020c1730 module:overlay(0) from:0x0209e980 kind:arm_call to:0x0202ea0c module:main @@ -4206,10 +4206,10 @@ from:0x020a4a94 kind:load to:0x020a4a58 module:overlay(0) from:0x020a4ac8 kind:arm_call to:0x0201e388 module:main from:0x020a4b20 kind:load to:0x020dc280 module:overlay(0) from:0x020a4b54 kind:arm_call_thumb to:0x020a956c module:overlay(0) -from:0x020a4b88 kind:load to:0x020e51a0 module:overlay(0) +from:0x020a4b88 kind:load to:0x020e5198 add:8 module:overlay(0) from:0x020a4b8c kind:load to:0x020e518c module:overlay(0) from:0x020a4b98 kind:arm_call_thumb to:0x020a956c module:overlay(0) -from:0x020a4bcc kind:load to:0x020e51a0 module:overlay(0) +from:0x020a4bcc kind:load to:0x020e5198 add:8 module:overlay(0) from:0x020a4bd0 kind:load to:0x020e518c module:overlay(0) from:0x020a4bdc kind:arm_call_thumb to:0x020a95ec module:overlay(0) from:0x020a4bf0 kind:arm_call_thumb to:0x020a95ec module:overlay(0) @@ -4217,7 +4217,7 @@ from:0x020a4bf8 kind:arm_call to:0x0202ea0c module:main from:0x020a4c0c kind:arm_call_thumb to:0x020a95ec module:overlay(0) from:0x020a4c40 kind:arm_call_thumb to:0x020a956c module:overlay(0) from:0x020a4c6c kind:arm_call to:0x020a9998 module:overlay(0) -from:0x020a4c78 kind:load to:0x020e51f0 module:overlay(0) +from:0x020a4c78 kind:load to:0x020e51e8 add:8 module:overlay(0) from:0x020a4c84 kind:arm_call_thumb to:0x020a95ec module:overlay(0) from:0x020a4c98 kind:arm_call_thumb to:0x020a95ec module:overlay(0) from:0x020a4ca0 kind:arm_call to:0x0202ea0c module:main @@ -4892,11 +4892,11 @@ from:0x020a9b7c kind:thumb_call to:0x020c0c40 module:overlay(0) from:0x020a9b82 kind:thumb_call_arm to:0x0202ea0c module:main from:0x020a9ba0 kind:arm_call to:0x0202ea18 module:main from:0x020a9ba8 kind:arm_call_thumb to:0x020a95ec module:overlay(0) -from:0x020a9bb4 kind:load to:0x020e5878 module:overlay(0) +from:0x020a9bb4 kind:load to:0x020e5870 add:8 module:overlay(0) from:0x020a9bcc kind:arm_call to:0x0202ea18 module:main from:0x020a9bd4 kind:arm_call_thumb to:0x020a95ec module:overlay(0) from:0x020a9bdc kind:arm_call to:0x0202ea0c module:main -from:0x020a9be8 kind:load to:0x020e5878 module:overlay(0) +from:0x020a9be8 kind:load to:0x020e5870 add:8 module:overlay(0) from:0x020a9c00 kind:arm_call to:0x020a9998 module:overlay(0) from:0x020a9c0c kind:arm_call to:0x02018ca4 module:main from:0x020a9c3c kind:arm_call to:0x020a9624 module:overlay(0) diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index d2166e0c9..8545fb638 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -1475,12 +1475,12 @@ func_ov000_0209d8d8 kind:function(arm,size=0x1c) addr:0x0209d8d8 func_ov000_0209d8f4 kind:function(arm,size=0x18) addr:0x0209d8f4 func_ov000_0209d90c kind:function(arm,size=0x1c) addr:0x0209d90c func_ov000_0209d928 kind:function(arm,size=0x1c) addr:0x0209d928 -func_ov000_0209d944 kind:function(arm,size=0x40) addr:0x0209d944 -func_ov000_0209d984 kind:function(arm,size=0x14) addr:0x0209d984 -func_ov000_0209d998 kind:function(arm,size=0x1c) addr:0x0209d998 -func_ov000_0209d9b4 kind:function(arm,size=0x2c) addr:0x0209d9b4 -func_ov000_0209d9e0 kind:function(arm,size=0x18) addr:0x0209d9e0 -func_ov000_0209d9f8 kind:function(arm,size=0x18) addr:0x0209d9f8 +_ZN14MapModelRenderC2EP9ItemModel kind:function(arm,size=0x40) addr:0x0209d944 +_ZN14MapModelRenderD1Ev kind:function(arm,size=0x14) addr:0x0209d984 +_ZN14MapModelRenderD0Ev kind:function(arm,size=0x1c) addr:0x0209d998 +_ZN14MapModelRender15HideModelCoversEP23ModelRenderCommandsData kind:function(arm,size=0x2c) addr:0x0209d9b4 +_Z19func_ov000_0209d9e0P23ModelRenderCommandsData kind:function(arm,size=0x18) addr:0x0209d9e0 +_Z17HideMapModelCoverP23ModelRenderCommandsData kind:function(arm,size=0x18) addr:0x0209d9f8 func_ov000_0209da10 kind:function(arm,size=0x34) addr:0x0209da10 func_ov000_0209da44 kind:function(arm,size=0x24) addr:0x0209da44 func_ov000_0209da68 kind:function(arm,size=0x28) addr:0x0209da68 @@ -1745,17 +1745,17 @@ func_ov000_020a4a58 kind:function(arm,size=0x18) addr:0x020a4a58 func_ov000_020a4a70 kind:function(arm,size=0x28) addr:0x020a4a70 func_ov000_020a4a98 kind:function(arm,size=0x8c) addr:0x020a4a98 func_ov000_020a4b24 kind:function(arm,size=0x28) addr:0x020a4b24 -func_ov000_020a4b4c kind:function(arm,size=0x44) addr:0x020a4b4c -func_ov000_020a4b90 kind:function(arm,size=0x44) addr:0x020a4b90 -func_ov000_020a4bd4 kind:function(arm,size=0x14) addr:0x020a4bd4 -func_ov000_020a4be8 kind:function(arm,size=0x1c) addr:0x020a4be8 -func_ov000_020a4c04 kind:function(arm,size=0x14) addr:0x020a4c04 -func_ov000_020a4c18 kind:function(arm,size=0x18) addr:0x020a4c18 -func_ov000_020a4c30 kind:function(arm,size=0x8) addr:0x020a4c30 -func_ov000_020a4c38 kind:function(arm,size=0x44) addr:0x020a4c38 -func_ov000_020a4c7c kind:function(arm,size=0x14) addr:0x020a4c7c -func_ov000_020a4c90 kind:function(arm,size=0x1c) addr:0x020a4c90 -func_ov000_020a4cac kind:function(arm,size=0x90) addr:0x020a4cac +_ZN17SkyboxModelRenderC2EP9ItemModel kind:function(arm,size=0x44) addr:0x020a4b4c +_ZN17SkyboxModelRenderC1EP9ItemModel kind:function(arm,size=0x44) addr:0x020a4b90 +_ZN17SkyboxModelRenderD1Ev kind:function(arm,size=0x14) addr:0x020a4bd4 +_ZN17SkyboxModelRenderD0Ev kind:function(arm,size=0x1c) addr:0x020a4be8 +_ZN17SkyboxModelRenderD2Ev kind:function(arm,size=0x14) addr:0x020a4c04 +_ZN17SkyboxModelRender8vfunc_40Ev kind:function(arm,size=0x18) addr:0x020a4c18 +_ZN17SkyboxModelRender8vfunc_44Ev kind:function(arm,size=0x8) addr:0x020a4c30 +_ZN15MistModelRenderC1EP9ItemModel kind:function(arm,size=0x44) addr:0x020a4c38 +_ZN15MistModelRenderD1Ev kind:function(arm,size=0x14) addr:0x020a4c7c +_ZN15MistModelRenderD0Ev kind:function(arm,size=0x1c) addr:0x020a4c90 +_ZN15MistModelRender8vfunc_3cEP23ModelRenderCommandsData kind:function(arm,size=0x90) addr:0x020a4cac func_ov000_020a4d3c kind:function(arm,size=0x80) addr:0x020a4d3c func_ov000_020a4dbc kind:function(arm,size=0x14) addr:0x020a4dbc func_ov000_020a4dd0 kind:function(arm,size=0x3c) addr:0x020a4dd0 @@ -4693,9 +4693,9 @@ data_ov000_020e4ad0 kind:data(any) addr:0x020e4ad0 data_ov000_020e4b00 kind:data(any) addr:0x020e4b00 data_ov000_020e4b18 kind:data(any) addr:0x020e4b18 data_ov000_020e4b68 kind:data(any) addr:0x020e4b68 -data_ov000_020e4bb8 kind:data(any) addr:0x020e4bb8 -data_ov000_020e4c00 kind:data(any) addr:0x020e4c00 -data_ov000_020e4c50 kind:data(any) addr:0x020e4c50 +_ZTV14MapModelRender kind:data(any) addr:0x020e4bb0 +data_ov000_020e4c00 kind:data(any) addr:0x020e4bf8 +data_ov000_020e4c50 kind:data(any) addr:0x020e4c48 data_ov000_020e4d0c kind:data(any) addr:0x020e4d0c data_ov000_020e4d30 kind:data(any) addr:0x020e4d30 data_ov000_020e4d4c kind:data(any) addr:0x020e4d4c @@ -4726,9 +4726,9 @@ data_ov000_020e510c kind:data(any) addr:0x020e510c data_ov000_020e5120 kind:data(any) addr:0x020e5120 data_ov000_020e5134 kind:data(any) addr:0x020e5134 data_ov000_020e5144 kind:data(any) addr:0x020e5144 -data_ov000_020e518c kind:data(any) addr:0x020e518c -data_ov000_020e51a0 kind:data(any) addr:0x020e51a0 -data_ov000_020e51f0 kind:data(any) addr:0x020e51f0 +_ZN17SkyboxModelRender19data_ov000_020e518cE kind:data(any) addr:0x020e518c +_ZTV17SkyboxModelRender kind:data(any) addr:0x020e5198 +_ZTV15MistModelRender kind:data(any) addr:0x020e51e8 data_ov000_020e5230 kind:data(any) addr:0x020e5230 data_ov000_020e5234 kind:data(any) addr:0x020e5234 data_ov000_020e5238 kind:data(any) addr:0x020e5238 @@ -4800,7 +4800,7 @@ data_ov000_020e5808 kind:data(any) addr:0x020e5808 _ZTV11ModelRender kind:data(any) addr:0x020e5818 data_ov000_020e5868_pad kind:data(any) addr:0x020e5860 data_ov000_020e5868 kind:data(any) addr:0x020e5868 -data_ov000_020e5878 kind:data(any) addr:0x020e5878 +_ZTV15LinkModelRender kind:data(any) addr:0x020e5870 data_ov000_020e58e8 kind:data(any) addr:0x020e58e8 data_ov000_020e58ec kind:data(any) addr:0x020e58ec data_ov000_020e58f0 kind:data(any) addr:0x020e58f0 @@ -5027,7 +5027,7 @@ data_ov000_020e67ac kind:data(any) addr:0x020e67ac data_ov000_020e67b8 kind:data(any) addr:0x020e67b8 data_ov000_020e67d8 kind:data(any) addr:0x020e67d8 _ZTV13ActorNaviBase kind:data(any) addr:0x020e67dc -_ZTV18ActorNaviBase_Unk3 kind:data(any) addr:0x020e68d4 +_ZTV15NaviModelRender kind:data(any) addr:0x020e68d4 data_ov000_020e691c kind:data(any) addr:0x020e691c data_ov000_020e6934 kind:data(any) addr:0x020e6934 data_ov000_020e6974 kind:data(any) addr:0x020e6974 diff --git a/config/eur/arm9/overlays/ov004/delinks.txt b/config/eur/arm9/overlays/ov004/delinks.txt index 86850f15d..4429b76d7 100644 --- a/config/eur/arm9/overlays/ov004/delinks.txt +++ b/config/eur/arm9/overlays/ov004/delinks.txt @@ -15,3 +15,8 @@ src/04_Load/Actor/Navi/ActorNavi_04.cpp: src/04_Load/Actor/ActorManager_04.cpp: complete .text start:0x021051e0 end:0x021056c8 + +src/04_Load/Render/LinkModelRender_04.cpp: + complete + .text start:0x0210b2d8 end:0x0210b390 + .data start:0x02110bc4 end:0x02110cb4 \ No newline at end of file diff --git a/config/eur/arm9/overlays/ov004/relocs.txt b/config/eur/arm9/overlays/ov004/relocs.txt index fe9777c46..8fffdf20f 100644 --- a/config/eur/arm9/overlays/ov004/relocs.txt +++ b/config/eur/arm9/overlays/ov004/relocs.txt @@ -503,7 +503,7 @@ from:0x021033d8 kind:thumb_call_arm to:0x0202e9dc module:main from:0x02103418 kind:load to:0x020e2b5c add:8 module:overlay(0) from:0x0210341c kind:load to:0x020e4b68 module:overlay(0) from:0x02103420 kind:load to:0x027e0ce0 module:dtcm -from:0x02103424 kind:load to:0x020e4c00 module:overlay(0) +from:0x02103424 kind:load to:0x020e4bf8 add:8 module:overlay(0) from:0x02103428 kind:load to:0x027e0618 module:dtcm from:0x0210342c kind:load to:0x02136cc0 module:overlay(12) from:0x02103430 kind:load to:0x020e4fb4 module:overlay(0) @@ -2298,7 +2298,7 @@ from:0x0210b336 kind:thumb_call_arm to:0x0202e9f4 module:main from:0x0210b362 kind:thumb_call_arm to:0x020aa084 module:overlay(0) from:0x0210b36c kind:thumb_call_arm to:0x020aa0f0 module:overlay(0) from:0x0210b376 kind:thumb_call_arm to:0x020aa0f0 module:overlay(0) -from:0x0210b380 kind:load to:0x020e5878 module:overlay(0) +from:0x0210b380 kind:load to:0x020e5870 add:8 module:overlay(0) from:0x0210b384 kind:load to:0x02110c14 module:overlay(4) from:0x0210b388 kind:load to:0x02110bc4 module:overlay(4) from:0x0210b38c kind:load to:0x027e0ce0 module:dtcm diff --git a/config/eur/arm9/overlays/ov004/symbols.txt b/config/eur/arm9/overlays/ov004/symbols.txt index 740920d81..4434ba42e 100644 --- a/config/eur/arm9/overlays/ov004/symbols.txt +++ b/config/eur/arm9/overlays/ov004/symbols.txt @@ -226,7 +226,7 @@ _ZN13ActorNaviBaseD0Ev kind:function(thumb,size=0x48) addr:0x0210794c _ZN13ActorNaviBaseD2Ev kind:function(thumb,size=0x40) addr:0x02107994 _ZN18ActorNaviBase_Unk1C1Ev kind:function(thumb,size=0x6) addr:0x021079d4 _ZN13ActorNaviBase4InitEv kind:function(thumb,size=0xa4) addr:0x021079dc -_ZN18ActorNaviBase_Unk3C1EP9ItemModel kind:function(thumb,size=0x20) addr:0x02107a80 +_ZN15NaviModelRenderC2EP9ItemModel kind:function(thumb,size=0x20) addr:0x02107a80 _ZN9ActorNaviC1Ev kind:function(thumb,size=0xc4) addr:0x02107aa0 _ZN9ActorNavi4InitEv kind:function(thumb,size=0x9c) addr:0x02107b64 func_ov004_02107c00 kind:function(thumb,size=0x2c) addr:0x02107c00 @@ -314,7 +314,7 @@ _ZN10PlayerBaseC2Ev kind:function(thumb,size=0x48) addr:0x0210b210 _ZN10PlayerBaseD1Ev kind:function(thumb,size=0x28) addr:0x0210b258 _ZN10PlayerBaseD0Ev kind:function(thumb,size=0x30) addr:0x0210b280 _ZN10PlayerBaseD2Ev kind:function(thumb,size=0x28) addr:0x0210b2b0 -func_ov004_0210b2d8 kind:function(thumb,size=0xb8) addr:0x0210b2d8 +_ZN15LinkModelRenderC1EP9ItemModel kind:function(thumb,size=0xb8) addr:0x0210b2d8 func_ov004_0210b390 kind:function(thumb,size=0x12) addr:0x0210b390 func_ov004_0210b3a4 kind:function(thumb,size=0x2c) addr:0x0210b3a4 func_ov004_0210b3d0 kind:function(arm,size=0x4) addr:0x0210b3d0 @@ -735,8 +735,8 @@ data_ov004_02110b88 kind:data(any) addr:0x02110b88 data_ov004_02110b98 kind:data(any) addr:0x02110b98 data_ov004_02110ba8 kind:data(any) addr:0x02110ba8 data_ov004_02110bb4 kind:data(any) addr:0x02110bb4 -data_ov004_02110bc4 kind:data(any) addr:0x02110bc4 -data_ov004_02110c14 kind:data(any) addr:0x02110c14 +gLinkMaterials kind:data(any) addr:0x02110bc4 +gLinkBodyParts kind:data(any) addr:0x02110c14 data_ov004_02110cb4 kind:data(any) addr:0x02110cb4 data_ov004_02110cb8 kind:data(any) addr:0x02110cb8 data_ov004_02110ccc kind:data(any) addr:0x02110ccc diff --git a/config/eur/arm9/overlays/ov014/delinks.txt b/config/eur/arm9/overlays/ov014/delinks.txt index 533b842dc..f912f6629 100644 --- a/config/eur/arm9/overlays/ov014/delinks.txt +++ b/config/eur/arm9/overlays/ov014/delinks.txt @@ -20,3 +20,21 @@ src/14_Land/Actor/Player/ActorRefill.cpp: .ctor start:0x021558ec end:0x021558f0 .data start:0x021578b0 end:0x02157d70 .bss start:0x0215af94 end:0x0215b034 + +src/14_Land/Render/TreasureChestModelRender.cpp: + .text start:0x02125f00 end:0x02125f9c + .rodata start:0x02153c24 end:0x02153c38 + .data start:0x021561b8 end:0x02156200 + +src/14_Land/Render/SignModelRender.cpp: + .text start:0x0212d218 end:0x0212d598 + +src/14_Land/Render/FlowerModelRender.cpp: + .text start:0x0212e1f4 end:0x0212e448 + .rodata start:0x02153d20 end:0x02153d98 + .data start:0x02157108 end:0x02157150 + +src/14_Land/Render/SpikeModelRender.cpp: + .text start:0x0213174c end:0x02131824 + .rodata start:0x02153dc0 end:0x02153dd4 + .data start:0x021573cc end:0x02157414 \ No newline at end of file diff --git a/config/eur/arm9/overlays/ov014/relocs.txt b/config/eur/arm9/overlays/ov014/relocs.txt index 2916d174a..454d770d9 100644 --- a/config/eur/arm9/overlays/ov014/relocs.txt +++ b/config/eur/arm9/overlays/ov014/relocs.txt @@ -815,7 +815,7 @@ from:0x02125eec kind:arm_call to:0x02125290 module:overlay(14) from:0x02125ef4 kind:arm_call to:0x0202ea0c module:main from:0x02125f08 kind:arm_call_thumb to:0x020a956c module:overlay(0) from:0x02125f28 kind:arm_call to:0x020a9998 module:overlay(0) -from:0x02125f34 kind:load to:0x021561c0 module:overlay(14) +from:0x02125f34 kind:load to:0x021561b8 add:8 module:overlay(14) from:0x02125f54 kind:arm_call to:0x0201e388 module:main from:0x02125f7c kind:load to:0x02153c24 module:overlay(14) from:0x02125f88 kind:arm_call_thumb to:0x020a95ec module:overlay(0) @@ -823,7 +823,7 @@ from:0x02125f90 kind:arm_call to:0x0202ea0c module:main from:0x02125fbc kind:arm_call to:0x0202e9dc module:main from:0x02125fdc kind:arm_call to:0x02125168 module:overlay(14) from:0x02125ff4 kind:load to:0x027e0f84 module:dtcm -from:0x02125ff8 kind:load to:0x02156208 module:overlay(14) +from:0x02125ff8 kind:load to:0x02156200 add:8 module:overlay(14) from:0x02126018 kind:load to:0x021252b8 module:overlay(14) from:0x02126024 kind:arm_call to:0x0208c468 module:overlay(0) from:0x0212603c kind:arm_call to:0x0208b9e4 module:overlay(0) @@ -1652,7 +1652,7 @@ from:0x0212d1e8 kind:arm_call_thumb to:0x01ff8214 module:itcm from:0x0212d20c kind:load to:0x02050f54 module:main from:0x0212d220 kind:arm_call_thumb to:0x020a956c module:overlay(0) from:0x0212d264 kind:arm_call to:0x02018cb8 module:main -from:0x0212d270 kind:load to:0x02156f78 module:overlay(14) +from:0x0212d270 kind:load to:0x02156f70 add:8 module:overlay(14) from:0x0212d274 kind:load to:0x0212d564 module:overlay(14) from:0x0212d298 kind:arm_call to:0x01fffb4c module:itcm from:0x0212d2ac kind:arm_call to:0x01fffbec module:itcm @@ -1746,7 +1746,7 @@ from:0x0212e168 kind:arm_call to:0x0212e234 module:overlay(14) from:0x0212e1a0 kind:arm_call to:0x0208b8e0 module:overlay(0) from:0x0212e204 kind:arm_call_thumb to:0x020a956c module:overlay(0) from:0x0212e224 kind:arm_call to:0x0212e234 module:overlay(14) -from:0x0212e230 kind:load to:0x02157110 module:overlay(14) +from:0x0212e230 kind:load to:0x02157108 add:8 module:overlay(14) from:0x0212e24c kind:arm_call to:0x020a9998 module:overlay(0) from:0x0212e25c kind:arm_call to:0x020a9998 module:overlay(0) from:0x0212e2a4 kind:arm_call to:0x0201e388 module:main @@ -2068,7 +2068,7 @@ from:0x02131730 kind:arm_call to:0x020ceacc module:overlay(0) from:0x0213173c kind:load to:0x027e0ffc module:dtcm from:0x02131754 kind:arm_call_thumb to:0x020a956c module:overlay(0) from:0x0213177c kind:arm_call to:0x020a9998 module:overlay(0) -from:0x02131788 kind:load to:0x021573d4 module:overlay(14) +from:0x02131788 kind:load to:0x021573cc add:8 module:overlay(14) from:0x021317a8 kind:arm_call to:0x0201e388 module:main from:0x02131804 kind:load to:0x02153dc0 module:overlay(14) from:0x02131810 kind:arm_call_thumb to:0x020a95ec module:overlay(0) @@ -2082,7 +2082,7 @@ from:0x021318d4 kind:arm_call_thumb to:0x020bd618 module:overlay(0) from:0x021318e0 kind:load to:0x020e2748 module:overlay(0) from:0x021318e4 kind:load to:0x020e2f04 module:overlay(0) from:0x021318e8 kind:load to:0x020e2e3c module:overlay(0) -from:0x021318ec kind:load to:0x0215741c module:overlay(14) +from:0x021318ec kind:load to:0x02157414 add:8 module:overlay(14) from:0x021318f0 kind:load to:0x027e0f68 module:dtcm from:0x02131900 kind:arm_call_thumb to:0x020b3ea8 module:overlay(0) from:0x02131908 kind:arm_call to:0x02094824 module:overlay(0) diff --git a/config/eur/arm9/overlays/ov014/symbols.txt b/config/eur/arm9/overlays/ov014/symbols.txt index db56cc1d3..1e231da24 100644 --- a/config/eur/arm9/overlays/ov014/symbols.txt +++ b/config/eur/arm9/overlays/ov014/symbols.txt @@ -130,7 +130,7 @@ func_ov014_02125130 kind:function(arm,size=0x14) addr:0x02125130 func_ov014_02125144 kind:function(arm,size=0x8) addr:0x02125144 func_ov014_0212514c kind:function(arm,size=0x1c) addr:0x0212514c func_ov014_02125168 kind:function(arm,size=0xbc) addr:0x02125168 -func_ov014_02125224 kind:function(arm,size=0x14) addr:0x02125224 +_ZN24TreasureChestModelRenderD1Ev kind:function(arm,size=0x14) addr:0x02125224 func_ov014_02125238 kind:function(arm,size=0x28) addr:0x02125238 func_ov014_02125260 kind:function(arm,size=0x30) addr:0x02125260 func_ov014_02125290 kind:function(arm,size=0x28) addr:0x02125290 @@ -153,9 +153,9 @@ func_ov014_02125e60 kind:function(arm,size=0x68) addr:0x02125e60 func_ov014_02125ec8 kind:function(arm,size=0x14) addr:0x02125ec8 func_ov014_02125edc kind:function(arm,size=0x8) addr:0x02125edc func_ov014_02125ee4 kind:function(arm,size=0x1c) addr:0x02125ee4 -func_ov014_02125f00 kind:function(arm,size=0x38) addr:0x02125f00 -func_ov014_02125f38 kind:function(arm,size=0x48) addr:0x02125f38 -func_ov014_02125f80 kind:function(arm,size=0x1c) addr:0x02125f80 +_ZN24TreasureChestModelRenderC2EP9ItemModel kind:function(arm,size=0x38) addr:0x02125f00 +_ZN24TreasureChestModelRender8vfunc_3cEP23ModelRenderCommandsData kind:function(arm,size=0x48) addr:0x02125f38 +_ZN24TreasureChestModelRenderD0Ev kind:function(arm,size=0x1c) addr:0x02125f80 func_ov014_02125f9c kind:function(arm,size=0x60) addr:0x02125f9c func_ov014_02125ffc kind:function(arm,size=0x20) addr:0x02125ffc func_ov014_0212601c kind:function(arm,size=0x28) addr:0x0212601c @@ -389,16 +389,16 @@ func_ov014_0212d040 kind:function(arm,size=0x184) addr:0x0212d040 func_ov014_0212d1c4 kind:function(arm,size=0x8) addr:0x0212d1c4 func_ov014_0212d1cc kind:function(arm,size=0x44) addr:0x0212d1cc func_ov014_0212d210 kind:function(arm,size=0x8) addr:0x0212d210 -func_ov014_0212d218 kind:function(arm,size=0x60) addr:0x0212d218 -func_ov014_0212d278 kind:function(arm,size=0x74) addr:0x0212d278 -func_ov014_0212d2ec kind:function(arm,size=0x98) addr:0x0212d2ec -func_ov014_0212d384 kind:function(arm,size=0x118) addr:0x0212d384 -func_ov014_0212d49c kind:function(arm,size=0x70) addr:0x0212d49c -func_ov014_0212d50c kind:function(arm,size=0x28) addr:0x0212d50c -func_ov014_0212d534 kind:function(arm,size=0x18) addr:0x0212d534 -func_ov014_0212d54c kind:function(arm,size=0x18) addr:0x0212d54c -func_ov014_0212d564 kind:function(arm,size=0x18) addr:0x0212d564 -func_ov014_0212d57c kind:function(arm,size=0x1c) addr:0x0212d57c +_ZN15SignModelRenderC2EP9ItemModel kind:function(arm,size=0x60) addr:0x0212d218 +_ZN15SignModelRender18SetImpactDirectionEP5Vec3p kind:function(arm,size=0x74) addr:0x0212d278 +_ZN15SignModelRender24CalculateBrokenSignStateEv kind:function(arm,size=0x98) addr:0x0212d2ec +_ZN15SignModelRender25UpdateBrokenPiecePositionEP23ModelRenderCommandsData kind:function(arm,size=0x118) addr:0x0212d384 +_ZN15SignModelRender26SetTransparencyAfterDamageEP23ModelRenderCommandsData kind:function(arm,size=0x70) addr:0x0212d49c +_ZN15SignModelRender19func_ov014_0212d50cEP23ModelRenderCommandsData kind:function(arm,size=0x28) addr:0x0212d50c +_Z19func_ov014_0212d534P23ModelRenderCommandsData kind:function(arm,size=0x18) addr:0x0212d534 +_Z19func_ov014_0212d54cP23ModelRenderCommandsData kind:function(arm,size=0x18) addr:0x0212d54c +_Z19func_ov014_0212d564P23ModelRenderCommandsData kind:function(arm,size=0x18) addr:0x0212d564 +_ZN15SignModelRenderD0Ev kind:function(arm,size=0x1c) addr:0x0212d57c func_ov014_0212d598 kind:function(arm,size=0x38) addr:0x0212d598 func_ov014_0212d5d0 kind:function(arm,size=0x88) addr:0x0212d5d0 func_ov014_0212d658 kind:function(arm,size=0x28) addr:0x0212d658 @@ -413,7 +413,7 @@ func_ov014_0212d8d0 kind:function(arm,size=0x20) addr:0x0212d8d0 func_ov014_0212d8f0 kind:function(arm,size=0x8) addr:0x0212d8f0 func_ov014_0212d8f8 kind:function(arm,size=0x38) addr:0x0212d8f8 func_ov014_0212d930 kind:function(arm,size=0xa4) addr:0x0212d930 -func_ov014_0212d9d4 kind:function(arm,size=0x14) addr:0x0212d9d4 +_ZN17FlowerModelRenderD1Ev kind:function(arm,size=0x14) addr:0x0212d9d4 func_ov014_0212d9e8 kind:function(arm,size=0x28) addr:0x0212d9e8 func_ov014_0212da10 kind:function(arm,size=0x30) addr:0x0212da10 func_ov014_0212da40 kind:function(arm,size=0xa0) addr:0x0212da40 @@ -429,10 +429,10 @@ func_ov014_0212e110 kind:function(arm,size=0x2c) addr:0x0212e110 func_ov014_0212e13c kind:function(arm,size=0x74) addr:0x0212e13c func_ov014_0212e1b0 kind:function(arm,size=0x3c) addr:0x0212e1b0 func_ov014_0212e1ec kind:function(arm,size=0x8) addr:0x0212e1ec -func_ov014_0212e1f4 kind:function(arm,size=0x40) addr:0x0212e1f4 -func_ov014_0212e234 kind:function(arm,size=0x30) addr:0x0212e234 -func_ov014_0212e264 kind:function(arm,size=0x1c8) addr:0x0212e264 -func_ov014_0212e42c kind:function(arm,size=0x1c) addr:0x0212e42c +_ZN17FlowerModelRenderC1EP9ItemModelii kind:function(arm,size=0x40) addr:0x0212e1f4 +_ZN17FlowerModelRender19func_ov014_0212e234Ev kind:function(arm,size=0x30) addr:0x0212e234 +_ZN17FlowerModelRender8vfunc_3cEP23ModelRenderCommandsData kind:function(arm,size=0x1c8) addr:0x0212e264 +_ZN17FlowerModelRenderD0Ev kind:function(arm,size=0x1c) addr:0x0212e42c func_ov014_0212e448 kind:function(arm,size=0x38) addr:0x0212e448 func_ov014_0212e480 kind:function(arm,size=0x80) addr:0x0212e480 func_ov014_0212e500 kind:function(arm,size=0x28) addr:0x0212e500 @@ -476,7 +476,7 @@ func_ov014_0213067c kind:function(arm,size=0x64) addr:0x0213067c func_ov014_021306e0 kind:function(arm,size=0x64) addr:0x021306e0 func_ov014_02130744 kind:function(arm,size=0x38) addr:0x02130744 func_ov014_0213077c kind:function(arm,size=0xb4) addr:0x0213077c -func_ov014_02130830 kind:function(arm,size=0x14) addr:0x02130830 +_ZN16SpikeModelRenderD1Ev kind:function(arm,size=0x14) addr:0x02130830 func_ov014_02130844 kind:function(arm,size=0x28) addr:0x02130844 func_ov014_0213086c kind:function(arm,size=0x30) addr:0x0213086c func_ov014_0213089c kind:function(arm,size=0x120) addr:0x0213089c @@ -491,9 +491,9 @@ func_ov014_02131450 kind:function(arm,size=0x68) addr:0x02131450 func_ov014_021314b8 kind:function(arm,size=0x20c) addr:0x021314b8 func_ov014_021316c4 kind:function(arm,size=0x80) addr:0x021316c4 func_ov014_02131744 kind:function(arm,size=0x8) addr:0x02131744 -func_ov014_0213174c kind:function(arm,size=0x40) addr:0x0213174c -func_ov014_0213178c kind:function(arm,size=0x7c) addr:0x0213178c -func_ov014_02131808 kind:function(arm,size=0x1c) addr:0x02131808 +_ZN16SpikeModelRenderC1EP9ItemModel kind:function(arm,size=0x40) addr:0x0213174c +_ZN16SpikeModelRender8vfunc_3cEP23ModelRenderCommandsData kind:function(arm,size=0x7c) addr:0x0213178c +_ZN16SpikeModelRenderD0Ev kind:function(arm,size=0x1c) addr:0x02131808 func_ov014_02131824 kind:function(arm,size=0x38) addr:0x02131824 func_ov014_0213185c kind:function(arm,size=0x98) addr:0x0213185c func_ov014_021318f4 kind:function(arm,size=0x28) addr:0x021318f4 @@ -1550,7 +1550,7 @@ data_ov014_02153be8 kind:data(any) addr:0x02153be8 data_ov014_02153bfc kind:data(any) addr:0x02153bfc data_ov014_02153c04 kind:data(any) addr:0x02153c04 data_ov014_02153c18 kind:data(any) addr:0x02153c18 -data_ov014_02153c24 kind:data(any) addr:0x02153c24 +boxBModelName kind:data(any) addr:0x02153c24 data_ov014_02153c38 kind:data(any) addr:0x02153c38 data_ov014_02153c4c kind:data(any) addr:0x02153c4c data_ov014_02153c64 kind:data(any) addr:0x02153c64 @@ -1562,15 +1562,15 @@ data_ov014_02153cc0 kind:data(any) addr:0x02153cc0 data_ov014_02153cd4 kind:data(any) addr:0x02153cd4 data_ov014_02153ce8 kind:data(any) addr:0x02153ce8 data_ov014_02153cf8 kind:data(any) addr:0x02153cf8 -data_ov014_02153d0c kind:data(any) addr:0x02153d0c -data_ov014_02153d20 kind:data(any) addr:0x02153d20 -data_ov014_02153d34 kind:data(any) addr:0x02153d34 -data_ov014_02153d48 kind:data(any) addr:0x02153d48 -data_ov014_02153d5c kind:data(any) addr:0x02153d5c -data_ov014_02153d70 kind:data(any) addr:0x02153d70 -data_ov014_02153d84 kind:data(any) addr:0x02153d84 +@338 kind:data(any) addr:0x02153d0c +@319 kind:data(any) addr:0x02153d20 +@320 kind:data(any) addr:0x02153d34 +@321 kind:data(any) addr:0x02153d48 +@322 kind:data(any) addr:0x02153d5c +@323 kind:data(any) addr:0x02153d70 +@324 kind:data(any) addr:0x02153d84 data_ov014_02153d98 kind:data(any) addr:0x02153d98 -data_ov014_02153dc0 kind:data(any) addr:0x02153dc0 +@242 kind:data(any) addr:0x02153dc0 data_ov014_02153dd4 kind:data(any) addr:0x02153dd4 data_ov014_02153de4 kind:data(any) addr:0x02153de4 data_ov014_02153df8 kind:data(any) addr:0x02153df8 @@ -1844,8 +1844,8 @@ data_ov014_02155fb0 kind:data(any) addr:0x02155fb0 data_ov014_02155fd4 kind:data(any) addr:0x02155fd4 data_ov014_02156078 kind:data(any) addr:0x02156078 data_ov014_0215611c kind:data(any) addr:0x0215611c -data_ov014_021561c0 kind:data(any) addr:0x021561c0 -data_ov014_02156208 kind:data(any) addr:0x02156208 +_ZTV24TreasureChestModelRender kind:data(any) addr:0x021561b8 +data_ov014_02156208 kind:data(any) addr:0x02156200 data_ov014_021562ac kind:data(any) addr:0x021562ac data_ov014_02156350 kind:data(any) addr:0x02156350 data_ov014_021563f4 kind:data(any) addr:0x021563f4 @@ -1898,13 +1898,13 @@ data_ov014_02156e28 kind:data(any) addr:0x02156e28 data_ov014_02156ebc kind:data(any) addr:0x02156ebc data_ov014_02156ec4 kind:data(any) addr:0x02156ec4 data_ov014_02156ee4 kind:data(any) addr:0x02156ee4 -data_ov014_02156f78 kind:data(any) addr:0x02156f78 +_ZTV15SignModelRender kind:data(any) addr:0x02156f70 data_ov014_02156fc0 kind:data(any) addr:0x02156fc0 data_ov014_02157054 kind:data(any) addr:0x02157054 data_ov014_021570e0 kind:data(any) addr:0x021570e0 data_ov014_021570e8 kind:data(any) addr:0x021570e8 data_ov014_021570f0 kind:data(any) addr:0x021570f0 -data_ov014_02157110 kind:data(any) addr:0x02157110 +_ZTV17FlowerModelRender kind:data(any) addr:0x02157108 data_ov014_02157150 kind:data(any) addr:0x02157150 data_ov014_02157160 kind:data(any) addr:0x02157160 data_ov014_021571f4 kind:data(any) addr:0x021571f4 @@ -1913,8 +1913,8 @@ data_ov014_02157314 kind:data(any) addr:0x02157314 data_ov014_02157320 kind:data(any) addr:0x02157320 data_ov014_0215732c kind:data(any) addr:0x0215732c data_ov014_02157340 kind:data(any) addr:0x02157340 -data_ov014_021573d4 kind:data(any) addr:0x021573d4 -data_ov014_0215741c kind:data(any) addr:0x0215741c +_ZTV16SpikeModelRender kind:data(any) addr:0x021573cc +data_ov014_0215741c kind:data(any) addr:0x02157414 data_ov014_021574b0 kind:data(any) addr:0x021574b0 data_ov014_02157544 kind:data(any) addr:0x02157544 data_ov014_02157554 kind:data(any) addr:0x02157554 diff --git a/config/usa/arm9/overlays/ov000/delinks.txt b/config/usa/arm9/overlays/ov000/delinks.txt index a93dda37a..2614cbb23 100644 --- a/config/usa/arm9/overlays/ov000/delinks.txt +++ b/config/usa/arm9/overlays/ov000/delinks.txt @@ -157,3 +157,18 @@ src/00_Core/Game/GameModePlay.cpp: src/00_Core/Render/ModelRender.cpp: .text start:0x020a950c end:0x020a9980 .data start:0x020e57b8 end:0x020e5800 + +src/00_Core/Render/MapModelRender.cpp: + complete + .text start:0x0209d8e4 end:0x0209d9b0 + .data start:0x020e4b50 end:0x020e4b98 + +src/00_Core/Render/SkyboxModelRender.cpp: + .text start:0x020a4aec end:0x020a4bd8 + .data start:0x020e512c end:0x020e5188 + .init start:0x020e11ac end:0x020e11f0 + +src/00_Core/Render/MistModelRender.cpp: + complete + .text start:0x020a4bd8 end:0x020a4cdc + .data start:0x020e5188 end:0x020e51d0 \ No newline at end of file diff --git a/config/usa/arm9/overlays/ov000/relocs.txt b/config/usa/arm9/overlays/ov000/relocs.txt index 82e14c8d1..0cf543d14 100644 --- a/config/usa/arm9/overlays/ov000/relocs.txt +++ b/config/usa/arm9/overlays/ov000/relocs.txt @@ -3559,7 +3559,7 @@ from:0x0209d8c0 kind:arm_call to:0x020a416c module:overlay(0) from:0x0209d8dc kind:arm_call to:0x020a4178 module:overlay(0) from:0x0209d8ec kind:arm_call_thumb to:0x020a950c module:overlay(0) from:0x0209d910 kind:arm_call to:0x02018cb8 module:main -from:0x0209d91c kind:load to:0x020e4b58 module:overlay(0) +from:0x0209d91c kind:load to:0x020e4b50 add:8 module:overlay(0) from:0x0209d920 kind:load to:0x0209d980 module:overlay(0) from:0x0209d92c kind:arm_call_thumb to:0x020a958c module:overlay(0) from:0x0209d940 kind:arm_call_thumb to:0x020a958c module:overlay(0) @@ -3633,7 +3633,7 @@ from:0x0209e870 kind:arm_call to:0x0202e9d8 module:main from:0x0209e87c kind:arm_call to:0x0209e888 module:overlay(0) from:0x0209e884 kind:load to:0x027e0fe0 module:dtcm from:0x0209e890 kind:arm_call to:0x020c14f4 module:overlay(0) -from:0x0209e8f8 kind:load to:0x020e4bf0 module:overlay(0) +from:0x0209e8f8 kind:load to:0x020e4be8 add:8 module:overlay(0) from:0x0209e904 kind:arm_call to:0x020c16d0 module:overlay(0) from:0x0209e918 kind:arm_call to:0x020c16d0 module:overlay(0) from:0x0209e920 kind:arm_call to:0x0202ea08 module:main @@ -4206,10 +4206,10 @@ from:0x020a4a34 kind:load to:0x020a49f8 module:overlay(0) from:0x020a4a68 kind:arm_call to:0x0201e388 module:main from:0x020a4ac0 kind:load to:0x020dc220 module:overlay(0) from:0x020a4af4 kind:arm_call_thumb to:0x020a950c module:overlay(0) -from:0x020a4b28 kind:load to:0x020e5140 module:overlay(0) +from:0x020a4b28 kind:load to:0x020e5138 add:8 module:overlay(0) from:0x020a4b2c kind:load to:0x020e512c module:overlay(0) from:0x020a4b38 kind:arm_call_thumb to:0x020a950c module:overlay(0) -from:0x020a4b6c kind:load to:0x020e5140 module:overlay(0) +from:0x020a4b6c kind:load to:0x020e5138 add:8 module:overlay(0) from:0x020a4b70 kind:load to:0x020e512c module:overlay(0) from:0x020a4b7c kind:arm_call_thumb to:0x020a958c module:overlay(0) from:0x020a4b90 kind:arm_call_thumb to:0x020a958c module:overlay(0) @@ -4217,7 +4217,7 @@ from:0x020a4b98 kind:arm_call to:0x0202ea08 module:main from:0x020a4bac kind:arm_call_thumb to:0x020a958c module:overlay(0) from:0x020a4be0 kind:arm_call_thumb to:0x020a950c module:overlay(0) from:0x020a4c0c kind:arm_call to:0x020a9938 module:overlay(0) -from:0x020a4c18 kind:load to:0x020e5190 module:overlay(0) +from:0x020a4c18 kind:load to:0x020e5188 add:8 module:overlay(0) from:0x020a4c24 kind:arm_call_thumb to:0x020a958c module:overlay(0) from:0x020a4c38 kind:arm_call_thumb to:0x020a958c module:overlay(0) from:0x020a4c40 kind:arm_call to:0x0202ea08 module:main @@ -4892,11 +4892,11 @@ from:0x020a9b1c kind:thumb_call to:0x020c0be0 module:overlay(0) from:0x020a9b22 kind:thumb_call_arm to:0x0202ea08 module:main from:0x020a9b40 kind:arm_call to:0x0202ea14 module:main from:0x020a9b48 kind:arm_call_thumb to:0x020a958c module:overlay(0) -from:0x020a9b54 kind:load to:0x020e5818 module:overlay(0) +from:0x020a9b54 kind:load to:0x020e5810 add:8 module:overlay(0) from:0x020a9b6c kind:arm_call to:0x0202ea14 module:main from:0x020a9b74 kind:arm_call_thumb to:0x020a958c module:overlay(0) from:0x020a9b7c kind:arm_call to:0x0202ea08 module:main -from:0x020a9b88 kind:load to:0x020e5818 module:overlay(0) +from:0x020a9b88 kind:load to:0x020e5810 add:8 module:overlay(0) from:0x020a9ba0 kind:arm_call to:0x020a9938 module:overlay(0) from:0x020a9bac kind:arm_call to:0x02018ca4 module:main from:0x020a9bdc kind:arm_call to:0x020a95c4 module:overlay(0) diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index 2b0059c34..4c2040254 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -1475,12 +1475,12 @@ func_ov000_0209d8d8 kind:function(arm,size=0x1c) addr:0x0209d878 func_ov000_0209d8f4 kind:function(arm,size=0x18) addr:0x0209d894 func_ov000_0209d90c kind:function(arm,size=0x1c) addr:0x0209d8ac func_ov000_0209d928 kind:function(arm,size=0x1c) addr:0x0209d8c8 -func_ov000_0209d944 kind:function(arm,size=0x40) addr:0x0209d8e4 -func_ov000_0209d984 kind:function(arm,size=0x14) addr:0x0209d924 -func_ov000_0209d998 kind:function(arm,size=0x1c) addr:0x0209d938 -func_ov000_0209d9b4 kind:function(arm,size=0x2c) addr:0x0209d954 -func_ov000_0209d9e0 kind:function(arm,size=0x18) addr:0x0209d980 -func_ov000_0209d9f8 kind:function(arm,size=0x18) addr:0x0209d998 +_ZN14MapModelRenderC2EP9ItemModel kind:function(arm,size=0x40) addr:0x0209d8e4 +_ZN14MapModelRenderD1Ev kind:function(arm,size=0x14) addr:0x0209d924 +_ZN14MapModelRenderD0Ev kind:function(arm,size=0x1c) addr:0x0209d938 +_ZN14MapModelRender15HideModelCoversEP23ModelRenderCommandsData kind:function(arm,size=0x2c) addr:0x0209d954 +_Z19func_ov000_0209d9e0P23ModelRenderCommandsData kind:function(arm,size=0x18) addr:0x0209d980 +_Z17HideMapModelCoverP23ModelRenderCommandsData kind:function(arm,size=0x18) addr:0x0209d998 func_ov000_0209da10 kind:function(arm,size=0x34) addr:0x0209d9b0 func_ov000_0209da44 kind:function(arm,size=0x24) addr:0x0209d9e4 func_ov000_0209da68 kind:function(arm,size=0x28) addr:0x0209da08 @@ -1745,17 +1745,17 @@ func_ov000_020a4a58 kind:function(arm,size=0x18) addr:0x020a49f8 func_ov000_020a4a70 kind:function(arm,size=0x28) addr:0x020a4a10 func_ov000_020a4a98 kind:function(arm,size=0x8c) addr:0x020a4a38 func_ov000_020a4b24 kind:function(arm,size=0x28) addr:0x020a4ac4 -func_ov000_020a4b4c kind:function(arm,size=0x44) addr:0x020a4aec -func_ov000_020a4b90 kind:function(arm,size=0x44) addr:0x020a4b30 -func_ov000_020a4bd4 kind:function(arm,size=0x14) addr:0x020a4b74 -func_ov000_020a4be8 kind:function(arm,size=0x1c) addr:0x020a4b88 -func_ov000_020a4c04 kind:function(arm,size=0x14) addr:0x020a4ba4 -func_ov000_020a4c18 kind:function(arm,size=0x18) addr:0x020a4bb8 -func_ov000_020a4c30 kind:function(arm,size=0x8) addr:0x020a4bd0 -func_ov000_020a4c38 kind:function(arm,size=0x44) addr:0x020a4bd8 -func_ov000_020a4c7c kind:function(arm,size=0x14) addr:0x020a4c1c -func_ov000_020a4c90 kind:function(arm,size=0x1c) addr:0x020a4c30 -func_ov000_020a4cac kind:function(arm,size=0x90) addr:0x020a4c4c +_ZN17SkyboxModelRenderC2EP9ItemModel kind:function(arm,size=0x44) addr:0x020a4aec +_ZN17SkyboxModelRenderC1EP9ItemModel kind:function(arm,size=0x44) addr:0x020a4b30 +_ZN17SkyboxModelRenderD1Ev kind:function(arm,size=0x14) addr:0x020a4b74 +_ZN17SkyboxModelRenderD0Ev kind:function(arm,size=0x1c) addr:0x020a4b88 +_ZN17SkyboxModelRenderD2Ev kind:function(arm,size=0x14) addr:0x020a4ba4 +_ZN17SkyboxModelRender8vfunc_40Ev kind:function(arm,size=0x18) addr:0x020a4bb8 +_ZN17SkyboxModelRender8vfunc_44Ev kind:function(arm,size=0x8) addr:0x020a4bd0 +_ZN15MistModelRenderC1EP9ItemModel kind:function(arm,size=0x44) addr:0x020a4bd8 +_ZN15MistModelRenderD1Ev kind:function(arm,size=0x14) addr:0x020a4c1c +_ZN15MistModelRenderD0Ev kind:function(arm,size=0x1c) addr:0x020a4c30 +_ZN15MistModelRender8vfunc_3cEP23ModelRenderCommandsData kind:function(arm,size=0x90) addr:0x020a4c4c func_ov000_020a4d3c kind:function(arm,size=0x80) addr:0x020a4cdc func_ov000_020a4dbc kind:function(arm,size=0x14) addr:0x020a4d5c func_ov000_020a4dd0 kind:function(arm,size=0x3c) addr:0x020a4d70 @@ -4693,9 +4693,9 @@ data_ov000_020e4ad0 kind:data(any) addr:0x020e4a70 data_ov000_020e4b00 kind:data(any) addr:0x020e4aa0 data_ov000_020e4b18 kind:data(any) addr:0x020e4ab8 data_ov000_020e4b68 kind:data(any) addr:0x020e4b08 -data_ov000_020e4bb8 kind:data(any) addr:0x020e4b58 -data_ov000_020e4c00 kind:data(any) addr:0x020e4ba0 -data_ov000_020e4c50 kind:data(any) addr:0x020e4bf0 +_ZTV14MapModelRender kind:data(any) addr:0x020e4b50 +data_ov000_020e4c00 kind:data(any) addr:0x020e4b98 +data_ov000_020e4c50 kind:data(any) addr:0x020e4be8 data_ov000_020e4d0c kind:data(any) addr:0x020e4cac data_ov000_020e4d30 kind:data(any) addr:0x020e4cd0 data_ov000_020e4d4c kind:data(any) addr:0x020e4cec @@ -4726,9 +4726,9 @@ data_ov000_020e510c kind:data(any) addr:0x020e50ac data_ov000_020e5120 kind:data(any) addr:0x020e50c0 data_ov000_020e5134 kind:data(any) addr:0x020e50d4 data_ov000_020e5144 kind:data(any) addr:0x020e50e4 -data_ov000_020e518c kind:data(any) addr:0x020e512c -data_ov000_020e51a0 kind:data(any) addr:0x020e5140 -data_ov000_020e51f0 kind:data(any) addr:0x020e5190 +_ZN17SkyboxModelRender19data_ov000_020e518cE kind:data(any) addr:0x020e512c +_ZTV17SkyboxModelRender kind:data(any) addr:0x020e5138 +_ZTV15MistModelRender kind:data(any) addr:0x020e5188 data_ov000_020e5230 kind:data(any) addr:0x020e51d0 data_ov000_020e5234 kind:data(any) addr:0x020e51d4 data_ov000_020e5238 kind:data(any) addr:0x020e51d8 @@ -4800,7 +4800,7 @@ data_ov000_020e5808 kind:data(any) addr:0x020e57a8 _ZTV11ModelRender kind:data(any) addr:0x020e57b8 data_ov000_020e5868_pad kind:data(any) addr:0x020e5800 data_ov000_020e5868 kind:data(any) addr:0x020e5808 -data_ov000_020e5878 kind:data(any) addr:0x020e5818 +_ZTV15LinkModelRender kind:data(any) addr:0x020e5810 data_ov000_020e58e8 kind:data(any) addr:0x020e5888 data_ov000_020e58ec kind:data(any) addr:0x020e588c data_ov000_020e58f0 kind:data(any) addr:0x020e5890 @@ -5027,7 +5027,7 @@ data_ov000_020e67ac kind:data(any) addr:0x020e674c data_ov000_020e67b8 kind:data(any) addr:0x020e6758 data_ov000_020e67d8 kind:data(any) addr:0x020e6778 _ZTV13ActorNaviBase kind:data(any) addr:0x020e677c -_ZTV18ActorNaviBase_Unk3 kind:data(any) addr:0x020e6874 +_ZTV15NaviModelRender kind:data(any) addr:0x020e6874 data_ov000_020e691c kind:data(any) addr:0x020e68bc data_ov000_020e6934 kind:data(any) addr:0x020e68d4 data_ov000_020e6974 kind:data(any) addr:0x020e6914 diff --git a/config/usa/arm9/overlays/ov004/delinks.txt b/config/usa/arm9/overlays/ov004/delinks.txt index d7cf827e9..cf189a7af 100644 --- a/config/usa/arm9/overlays/ov004/delinks.txt +++ b/config/usa/arm9/overlays/ov004/delinks.txt @@ -15,3 +15,8 @@ src/04_Load/Actor/Navi/ActorNavi_04.cpp: src/04_Load/Actor/ActorManager_04.cpp: complete .text start:0x02105160 end:0x02105648 + +src/04_Load/Render/LinkModelRender_04.cpp: + complete + .text start:0x0210b258 end:0x0210b310 + .data start:0x02110b44 end:0x02110c34 \ No newline at end of file diff --git a/config/usa/arm9/overlays/ov004/relocs.txt b/config/usa/arm9/overlays/ov004/relocs.txt index 07a60ef96..4cfae7b41 100644 --- a/config/usa/arm9/overlays/ov004/relocs.txt +++ b/config/usa/arm9/overlays/ov004/relocs.txt @@ -503,7 +503,7 @@ from:0x02103358 kind:thumb_call_arm to:0x0202e9d8 module:main from:0x02103398 kind:load to:0x020e2afc add:8 module:overlay(0) from:0x0210339c kind:load to:0x020e4b08 module:overlay(0) from:0x021033a0 kind:load to:0x027e0ce0 module:dtcm -from:0x021033a4 kind:load to:0x020e4ba0 module:overlay(0) +from:0x021033a4 kind:load to:0x020e4b98 add:8 module:overlay(0) from:0x021033a8 kind:load to:0x027e0618 module:dtcm from:0x021033ac kind:load to:0x02136c40 module:overlay(12) from:0x021033b0 kind:load to:0x020e4f54 module:overlay(0) @@ -2298,7 +2298,7 @@ from:0x0210b2b6 kind:thumb_call_arm to:0x0202e9f0 module:main from:0x0210b2e2 kind:thumb_call_arm to:0x020aa024 module:overlay(0) from:0x0210b2ec kind:thumb_call_arm to:0x020aa090 module:overlay(0) from:0x0210b2f6 kind:thumb_call_arm to:0x020aa090 module:overlay(0) -from:0x0210b300 kind:load to:0x020e5818 module:overlay(0) +from:0x0210b300 kind:load to:0x020e5810 add:8 module:overlay(0) from:0x0210b304 kind:load to:0x02110b94 module:overlay(4) from:0x0210b308 kind:load to:0x02110b44 module:overlay(4) from:0x0210b30c kind:load to:0x027e0ce0 module:dtcm diff --git a/config/usa/arm9/overlays/ov004/symbols.txt b/config/usa/arm9/overlays/ov004/symbols.txt index 18887b0a8..d0bbe4274 100644 --- a/config/usa/arm9/overlays/ov004/symbols.txt +++ b/config/usa/arm9/overlays/ov004/symbols.txt @@ -226,7 +226,7 @@ _ZN13ActorNaviBaseD0Ev kind:function(thumb,size=0x48) addr:0x021078cc _ZN13ActorNaviBaseD2Ev kind:function(thumb,size=0x40) addr:0x02107914 _ZN18ActorNaviBase_Unk1C1Ev kind:function(thumb,size=0x6) addr:0x02107954 _ZN13ActorNaviBase4InitEv kind:function(thumb,size=0xa4) addr:0x0210795c -_ZN18ActorNaviBase_Unk3C1EP9ItemModel kind:function(thumb,size=0x20) addr:0x02107a00 +_ZN15NaviModelRenderC2EP9ItemModel kind:function(thumb,size=0x20) addr:0x02107a00 _ZN9ActorNaviC1Ev kind:function(thumb,size=0xc4) addr:0x02107a20 _ZN9ActorNavi4InitEv kind:function(thumb,size=0x9c) addr:0x02107ae4 func_ov004_02107c00 kind:function(thumb,size=0x2c) addr:0x02107b80 @@ -314,7 +314,7 @@ _ZN10PlayerBaseC2Ev kind:function(thumb,size=0x48) addr:0x0210b190 _ZN10PlayerBaseD1Ev kind:function(thumb,size=0x28) addr:0x0210b1d8 _ZN10PlayerBaseD0Ev kind:function(thumb,size=0x30) addr:0x0210b200 _ZN10PlayerBaseD2Ev kind:function(thumb,size=0x28) addr:0x0210b230 -func_ov004_0210b2d8 kind:function(thumb,size=0xb8) addr:0x0210b258 +_ZN15LinkModelRenderC1EP9ItemModel kind:function(thumb,size=0xb8) addr:0x0210b258 func_ov004_0210b390 kind:function(thumb,size=0x12) addr:0x0210b310 func_ov004_0210b3a4 kind:function(thumb,size=0x2c) addr:0x0210b324 func_ov004_0210b3d0 kind:function(arm,size=0x4) addr:0x0210b350 @@ -735,8 +735,8 @@ data_ov004_02110b88 kind:data(any) addr:0x02110b08 data_ov004_02110b98 kind:data(any) addr:0x02110b18 data_ov004_02110ba8 kind:data(any) addr:0x02110b28 data_ov004_02110bb4 kind:data(any) addr:0x02110b34 -data_ov004_02110bc4 kind:data(any) addr:0x02110b44 -data_ov004_02110c14 kind:data(any) addr:0x02110b94 +gLinkMaterials kind:data(any) addr:0x02110b44 +gLinkBodyParts kind:data(any) addr:0x02110b94 data_ov004_02110cb4 kind:data(any) addr:0x02110c34 data_ov004_02110cb8 kind:data(any) addr:0x02110c38 data_ov004_02110ccc kind:data(any) addr:0x02110c4c diff --git a/config/usa/arm9/overlays/ov014/delinks.txt b/config/usa/arm9/overlays/ov014/delinks.txt index dcd2d7053..25acabbd9 100644 --- a/config/usa/arm9/overlays/ov014/delinks.txt +++ b/config/usa/arm9/overlays/ov014/delinks.txt @@ -20,3 +20,21 @@ src/14_Land/Actor/Player/ActorRefill.cpp: .ctor start:0x02155848 end:0x0215584c .data start:0x02157810 end:0x02157cd0 .bss start:0x0215aef4 end:0x0215af94 + +src/14_Land/Render/TreasureChestModelRender.cpp: + .text start:0x02125e80 end:0x02125f1c + .rodata start:0x02153b80 end:0x02153b94 + .data start:0x02156118 end:0x02156160 + +src/14_Land/Render/SignModelRender.cpp: + .text start:0x0212d198 end:0x0212d518 + +src/14_Land/Render/FlowerModelRender.cpp: + .text start:0x0212e174 end:0x0212e3c8 + .rodata start:0x02153c7c end:0x02153cf4 + .data start:0x02157068 end:0x021570b0 + +src/14_Land/Render/SpikeModelRender.cpp: + .text start:0x021316a8 end:0x02131780 + .rodata start:0x02153d1c end:0x02153d30 + .data start:0x0215732c end:0x02157374 \ No newline at end of file diff --git a/config/usa/arm9/overlays/ov014/relocs.txt b/config/usa/arm9/overlays/ov014/relocs.txt index 71735c51d..e2ca3088d 100644 --- a/config/usa/arm9/overlays/ov014/relocs.txt +++ b/config/usa/arm9/overlays/ov014/relocs.txt @@ -815,7 +815,7 @@ from:0x02125e6c kind:arm_call to:0x02125210 module:overlay(14) from:0x02125e74 kind:arm_call to:0x0202ea08 module:main from:0x02125e88 kind:arm_call_thumb to:0x020a950c module:overlay(0) from:0x02125ea8 kind:arm_call to:0x020a9938 module:overlay(0) -from:0x02125eb4 kind:load to:0x02156120 module:overlay(14) +from:0x02125eb4 kind:load to:0x02156118 add:8 module:overlay(14) from:0x02125ed4 kind:arm_call to:0x0201e388 module:main from:0x02125efc kind:load to:0x02153b80 module:overlay(14) from:0x02125f08 kind:arm_call_thumb to:0x020a958c module:overlay(0) @@ -823,7 +823,7 @@ from:0x02125f10 kind:arm_call to:0x0202ea08 module:main from:0x02125f3c kind:arm_call to:0x0202e9d8 module:main from:0x02125f5c kind:arm_call to:0x021250e8 module:overlay(14) from:0x02125f74 kind:load to:0x027e0f84 module:dtcm -from:0x02125f78 kind:load to:0x02156168 module:overlay(14) +from:0x02125f78 kind:load to:0x02156160 add:8 module:overlay(14) from:0x02125f98 kind:load to:0x02125238 module:overlay(14) from:0x02125fa4 kind:arm_call to:0x0208c408 module:overlay(0) from:0x02125fbc kind:arm_call to:0x0208b984 module:overlay(0) @@ -1652,7 +1652,7 @@ from:0x0212d168 kind:arm_call_thumb to:0x01ff8214 module:itcm from:0x0212d18c kind:load to:0x02050f10 module:main from:0x0212d1a0 kind:arm_call_thumb to:0x020a950c module:overlay(0) from:0x0212d1e4 kind:arm_call to:0x02018cb8 module:main -from:0x0212d1f0 kind:load to:0x02156ed8 module:overlay(14) +from:0x0212d1f0 kind:load to:0x02156ed0 add:8 module:overlay(14) from:0x0212d1f4 kind:load to:0x0212d4e4 module:overlay(14) from:0x0212d218 kind:arm_call to:0x01fffb4c module:itcm from:0x0212d22c kind:arm_call to:0x01fffbec module:itcm @@ -1746,7 +1746,7 @@ from:0x0212e0e8 kind:arm_call to:0x0212e1b4 module:overlay(14) from:0x0212e120 kind:arm_call to:0x0208b880 module:overlay(0) from:0x0212e184 kind:arm_call_thumb to:0x020a950c module:overlay(0) from:0x0212e1a4 kind:arm_call to:0x0212e1b4 module:overlay(14) -from:0x0212e1b0 kind:load to:0x02157070 module:overlay(14) +from:0x0212e1b0 kind:load to:0x02157068 add:8 module:overlay(14) from:0x0212e1cc kind:arm_call to:0x020a9938 module:overlay(0) from:0x0212e1dc kind:arm_call to:0x020a9938 module:overlay(0) from:0x0212e224 kind:arm_call to:0x0201e388 module:main @@ -2068,7 +2068,7 @@ from:0x0213168c kind:arm_call to:0x020cea6c module:overlay(0) from:0x02131698 kind:load to:0x027e0ffc module:dtcm from:0x021316b0 kind:arm_call_thumb to:0x020a950c module:overlay(0) from:0x021316d8 kind:arm_call to:0x020a9938 module:overlay(0) -from:0x021316e4 kind:load to:0x02157334 module:overlay(14) +from:0x021316e4 kind:load to:0x0215732c add:8 module:overlay(14) from:0x02131704 kind:arm_call to:0x0201e388 module:main from:0x02131760 kind:load to:0x02153d1c module:overlay(14) from:0x0213176c kind:arm_call_thumb to:0x020a958c module:overlay(0) @@ -2082,7 +2082,7 @@ from:0x02131830 kind:arm_call_thumb to:0x020bd5b8 module:overlay(0) from:0x0213183c kind:load to:0x020e26e8 module:overlay(0) from:0x02131840 kind:load to:0x020e2ea4 module:overlay(0) from:0x02131844 kind:load to:0x020e2ddc module:overlay(0) -from:0x02131848 kind:load to:0x0215737c module:overlay(14) +from:0x02131848 kind:load to:0x02157374 add:8 module:overlay(14) from:0x0213184c kind:load to:0x027e0f68 module:dtcm from:0x0213185c kind:arm_call_thumb to:0x020b3e48 module:overlay(0) from:0x02131864 kind:arm_call to:0x020947c4 module:overlay(0) diff --git a/config/usa/arm9/overlays/ov014/symbols.txt b/config/usa/arm9/overlays/ov014/symbols.txt index f4991334a..871e01c6a 100644 --- a/config/usa/arm9/overlays/ov014/symbols.txt +++ b/config/usa/arm9/overlays/ov014/symbols.txt @@ -130,7 +130,7 @@ func_ov014_02125130 kind:function(arm,size=0x14) addr:0x021250b0 func_ov014_02125144 kind:function(arm,size=0x8) addr:0x021250c4 func_ov014_0212514c kind:function(arm,size=0x1c) addr:0x021250cc func_ov014_02125168 kind:function(arm,size=0xbc) addr:0x021250e8 -func_ov014_02125224 kind:function(arm,size=0x14) addr:0x021251a4 +_ZN24TreasureChestModelRenderD1Ev kind:function(arm,size=0x14) addr:0x021251a4 func_ov014_02125238 kind:function(arm,size=0x28) addr:0x021251b8 func_ov014_02125260 kind:function(arm,size=0x30) addr:0x021251e0 func_ov014_02125290 kind:function(arm,size=0x28) addr:0x02125210 @@ -153,9 +153,9 @@ func_ov014_02125e60 kind:function(arm,size=0x68) addr:0x02125de0 func_ov014_02125ec8 kind:function(arm,size=0x14) addr:0x02125e48 func_ov014_02125edc kind:function(arm,size=0x8) addr:0x02125e5c func_ov014_02125ee4 kind:function(arm,size=0x1c) addr:0x02125e64 -func_ov014_02125f00 kind:function(arm,size=0x38) addr:0x02125e80 -func_ov014_02125f38 kind:function(arm,size=0x48) addr:0x02125eb8 -func_ov014_02125f80 kind:function(arm,size=0x1c) addr:0x02125f00 +_ZN24TreasureChestModelRenderC2EP9ItemModel kind:function(arm,size=0x38) addr:0x02125e80 +_ZN24TreasureChestModelRender8vfunc_3cEP23ModelRenderCommandsData kind:function(arm,size=0x48) addr:0x02125eb8 +_ZN24TreasureChestModelRenderD0Ev kind:function(arm,size=0x1c) addr:0x02125f00 func_ov014_02125f9c kind:function(arm,size=0x60) addr:0x02125f1c func_ov014_02125ffc kind:function(arm,size=0x20) addr:0x02125f7c func_ov014_0212601c kind:function(arm,size=0x28) addr:0x02125f9c @@ -389,16 +389,16 @@ func_ov014_0212d040 kind:function(arm,size=0x184) addr:0x0212cfc0 func_ov014_0212d1c4 kind:function(arm,size=0x8) addr:0x0212d144 func_ov014_0212d1cc kind:function(arm,size=0x44) addr:0x0212d14c func_ov014_0212d210 kind:function(arm,size=0x8) addr:0x0212d190 -func_ov014_0212d218 kind:function(arm,size=0x60) addr:0x0212d198 -func_ov014_0212d278 kind:function(arm,size=0x74) addr:0x0212d1f8 -func_ov014_0212d2ec kind:function(arm,size=0x98) addr:0x0212d26c -func_ov014_0212d384 kind:function(arm,size=0x118) addr:0x0212d304 -func_ov014_0212d49c kind:function(arm,size=0x70) addr:0x0212d41c -func_ov014_0212d50c kind:function(arm,size=0x28) addr:0x0212d48c -func_ov014_0212d534 kind:function(arm,size=0x18) addr:0x0212d4b4 -func_ov014_0212d54c kind:function(arm,size=0x18) addr:0x0212d4cc -func_ov014_0212d564 kind:function(arm,size=0x18) addr:0x0212d4e4 -func_ov014_0212d57c kind:function(arm,size=0x1c) addr:0x0212d4fc +_ZN15SignModelRenderC2EP9ItemModel kind:function(arm,size=0x60) addr:0x0212d198 +_ZN15SignModelRender18SetImpactDirectionEP5Vec3p kind:function(arm,size=0x74) addr:0x0212d1f8 +_ZN15SignModelRender24CalculateBrokenSignStateEv kind:function(arm,size=0x98) addr:0x0212d26c +_ZN15SignModelRender25UpdateBrokenPiecePositionEP23ModelRenderCommandsData kind:function(arm,size=0x118) addr:0x0212d304 +_ZN15SignModelRender26SetTransparencyAfterDamageEP23ModelRenderCommandsData kind:function(arm,size=0x70) addr:0x0212d41c +_ZN15SignModelRender19func_ov014_0212d50cEP23ModelRenderCommandsData kind:function(arm,size=0x28) addr:0x0212d48c +_Z19func_ov014_0212d534P23ModelRenderCommandsData kind:function(arm,size=0x18) addr:0x0212d4b4 +_Z19func_ov014_0212d54cP23ModelRenderCommandsData kind:function(arm,size=0x18) addr:0x0212d4cc +_Z19func_ov014_0212d564P23ModelRenderCommandsData kind:function(arm,size=0x18) addr:0x0212d4e4 +_ZN15SignModelRenderD0Ev kind:function(arm,size=0x1c) addr:0x0212d4fc func_ov014_0212d598 kind:function(arm,size=0x38) addr:0x0212d518 func_ov014_0212d5d0 kind:function(arm,size=0x88) addr:0x0212d550 func_ov014_0212d658 kind:function(arm,size=0x28) addr:0x0212d5d8 @@ -413,7 +413,7 @@ func_ov014_0212d8d0 kind:function(arm,size=0x20) addr:0x0212d850 func_ov014_0212d8f0 kind:function(arm,size=0x8) addr:0x0212d870 func_ov014_0212d8f8 kind:function(arm,size=0x38) addr:0x0212d878 func_ov014_0212d930 kind:function(arm,size=0xa4) addr:0x0212d8b0 -func_ov014_0212d9d4 kind:function(arm,size=0x14) addr:0x0212d954 +_ZN17FlowerModelRenderD1Ev kind:function(arm,size=0x14) addr:0x0212d954 func_ov014_0212d9e8 kind:function(arm,size=0x28) addr:0x0212d968 func_ov014_0212da10 kind:function(arm,size=0x30) addr:0x0212d990 func_ov014_0212da40 kind:function(arm,size=0xa0) addr:0x0212d9c0 @@ -429,10 +429,10 @@ func_ov014_0212e110 kind:function(arm,size=0x2c) addr:0x0212e090 func_ov014_0212e13c kind:function(arm,size=0x74) addr:0x0212e0bc func_ov014_0212e1b0 kind:function(arm,size=0x3c) addr:0x0212e130 func_ov014_0212e1ec kind:function(arm,size=0x8) addr:0x0212e16c -func_ov014_0212e1f4 kind:function(arm,size=0x40) addr:0x0212e174 -func_ov014_0212e234 kind:function(arm,size=0x30) addr:0x0212e1b4 -func_ov014_0212e264 kind:function(arm,size=0x1c8) addr:0x0212e1e4 -func_ov014_0212e42c kind:function(arm,size=0x1c) addr:0x0212e3ac +_ZN17FlowerModelRenderC1EP9ItemModelii kind:function(arm,size=0x40) addr:0x0212e174 +_ZN17FlowerModelRender19func_ov014_0212e234Ev kind:function(arm,size=0x30) addr:0x0212e1b4 +_ZN17FlowerModelRender8vfunc_3cEP23ModelRenderCommandsData kind:function(arm,size=0x1c8) addr:0x0212e1e4 +_ZN17FlowerModelRenderD0Ev kind:function(arm,size=0x1c) addr:0x0212e3ac func_ov014_0212e448 kind:function(arm,size=0x38) addr:0x0212e3c8 func_ov014_0212e480 kind:function(arm,size=0x80) addr:0x0212e400 func_ov014_0212e500 kind:function(arm,size=0x28) addr:0x0212e480 @@ -476,7 +476,7 @@ func_ov014_0213067c kind:function(arm,size=0x64) addr:0x021305d8 func_ov014_021306e0 kind:function(arm,size=0x64) addr:0x0213063c func_ov014_02130744 kind:function(arm,size=0x38) addr:0x021306a0 func_ov014_0213077c kind:function(arm,size=0xb4) addr:0x021306d8 -func_ov014_02130830 kind:function(arm,size=0x14) addr:0x0213078c +_ZN16SpikeModelRenderD1Ev kind:function(arm,size=0x14) addr:0x0213078c func_ov014_02130844 kind:function(arm,size=0x28) addr:0x021307a0 func_ov014_0213086c kind:function(arm,size=0x30) addr:0x021307c8 func_ov014_0213089c kind:function(arm,size=0x120) addr:0x021307f8 @@ -491,9 +491,9 @@ func_ov014_02131450 kind:function(arm,size=0x68) addr:0x021313ac func_ov014_021314b8 kind:function(arm,size=0x20c) addr:0x02131414 func_ov014_021316c4 kind:function(arm,size=0x80) addr:0x02131620 func_ov014_02131744 kind:function(arm,size=0x8) addr:0x021316a0 -func_ov014_0213174c kind:function(arm,size=0x40) addr:0x021316a8 -func_ov014_0213178c kind:function(arm,size=0x7c) addr:0x021316e8 -func_ov014_02131808 kind:function(arm,size=0x1c) addr:0x02131764 +_ZN16SpikeModelRenderC1EP9ItemModel kind:function(arm,size=0x40) addr:0x021316a8 +_ZN16SpikeModelRender8vfunc_3cEP23ModelRenderCommandsData kind:function(arm,size=0x7c) addr:0x021316e8 +_ZN16SpikeModelRenderD0Ev kind:function(arm,size=0x1c) addr:0x02131764 func_ov014_02131824 kind:function(arm,size=0x38) addr:0x02131780 func_ov014_0213185c kind:function(arm,size=0x98) addr:0x021317b8 func_ov014_021318f4 kind:function(arm,size=0x28) addr:0x02131850 @@ -1550,7 +1550,7 @@ data_ov014_02153be8 kind:data(any) addr:0x02153b44 data_ov014_02153bfc kind:data(any) addr:0x02153b58 data_ov014_02153c04 kind:data(any) addr:0x02153b60 data_ov014_02153c18 kind:data(any) addr:0x02153b74 -data_ov014_02153c24 kind:data(any) addr:0x02153b80 +boxBModelName kind:data(any) addr:0x02153b80 data_ov014_02153c38 kind:data(any) addr:0x02153b94 data_ov014_02153c4c kind:data(any) addr:0x02153ba8 data_ov014_02153c64 kind:data(any) addr:0x02153bc0 @@ -1562,15 +1562,15 @@ data_ov014_02153cc0 kind:data(any) addr:0x02153c1c data_ov014_02153cd4 kind:data(any) addr:0x02153c30 data_ov014_02153ce8 kind:data(any) addr:0x02153c44 data_ov014_02153cf8 kind:data(any) addr:0x02153c54 -data_ov014_02153d0c kind:data(any) addr:0x02153c68 -data_ov014_02153d20 kind:data(any) addr:0x02153c7c -data_ov014_02153d34 kind:data(any) addr:0x02153c90 -data_ov014_02153d48 kind:data(any) addr:0x02153ca4 -data_ov014_02153d5c kind:data(any) addr:0x02153cb8 -data_ov014_02153d70 kind:data(any) addr:0x02153ccc -data_ov014_02153d84 kind:data(any) addr:0x02153ce0 +@338 kind:data(any) addr:0x02153c68 +@319 kind:data(any) addr:0x02153c7c +@320 kind:data(any) addr:0x02153c90 +@321 kind:data(any) addr:0x02153ca4 +@322 kind:data(any) addr:0x02153cb8 +@323 kind:data(any) addr:0x02153ccc +@324 kind:data(any) addr:0x02153ce0 data_ov014_02153d98 kind:data(any) addr:0x02153cf4 -data_ov014_02153dc0 kind:data(any) addr:0x02153d1c +@242 kind:data(any) addr:0x02153d1c data_ov014_02153dd4 kind:data(any) addr:0x02153d30 data_ov014_02153de4 kind:data(any) addr:0x02153d40 data_ov014_02153df8 kind:data(any) addr:0x02153d54 @@ -1844,8 +1844,8 @@ data_ov014_02155fb0 kind:data(any) addr:0x02155f10 data_ov014_02155fd4 kind:data(any) addr:0x02155f34 data_ov014_02156078 kind:data(any) addr:0x02155fd8 data_ov014_0215611c kind:data(any) addr:0x0215607c -data_ov014_021561c0 kind:data(any) addr:0x02156120 -data_ov014_02156208 kind:data(any) addr:0x02156168 +_ZTV24TreasureChestModelRender kind:data(any) addr:0x02156118 +data_ov014_02156208 kind:data(any) addr:0x02156160 data_ov014_021562ac kind:data(any) addr:0x0215620c data_ov014_02156350 kind:data(any) addr:0x021562b0 data_ov014_021563f4 kind:data(any) addr:0x02156354 @@ -1898,13 +1898,13 @@ data_ov014_02156e28 kind:data(any) addr:0x02156d88 data_ov014_02156ebc kind:data(any) addr:0x02156e1c data_ov014_02156ec4 kind:data(any) addr:0x02156e24 data_ov014_02156ee4 kind:data(any) addr:0x02156e44 -data_ov014_02156f78 kind:data(any) addr:0x02156ed8 +_ZTV15SignModelRender kind:data(any) addr:0x02156ed0 data_ov014_02156fc0 kind:data(any) addr:0x02156f20 data_ov014_02157054 kind:data(any) addr:0x02156fb4 data_ov014_021570e0 kind:data(any) addr:0x02157040 data_ov014_021570e8 kind:data(any) addr:0x02157048 data_ov014_021570f0 kind:data(any) addr:0x02157050 -data_ov014_02157110 kind:data(any) addr:0x02157070 +_ZTV17FlowerModelRender kind:data(any) addr:0x02157068 data_ov014_02157150 kind:data(any) addr:0x021570b0 data_ov014_02157160 kind:data(any) addr:0x021570c0 data_ov014_021571f4 kind:data(any) addr:0x02157154 @@ -1913,8 +1913,8 @@ data_ov014_02157314 kind:data(any) addr:0x02157274 data_ov014_02157320 kind:data(any) addr:0x02157280 data_ov014_0215732c kind:data(any) addr:0x0215728c data_ov014_02157340 kind:data(any) addr:0x021572a0 -data_ov014_021573d4 kind:data(any) addr:0x02157334 -data_ov014_0215741c kind:data(any) addr:0x0215737c +_ZTV16SpikeModelRender kind:data(any) addr:0x0215732c +data_ov014_0215741c kind:data(any) addr:0x02157374 data_ov014_021574b0 kind:data(any) addr:0x02157410 data_ov014_02157544 kind:data(any) addr:0x021574a4 data_ov014_02157554 kind:data(any) addr:0x021574b4 diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp index 4434c1ff8..9d7d4cc89 100644 --- a/include/Actor/Navi/ActorNaviBase.hpp +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -40,13 +40,13 @@ class ActorNaviBase_Unk2 : public UnkStruct_ov000_020c0c08 { } }; -class ActorNaviBase_Unk3 : public ModelRender { +class NaviModelRender : public ModelRender { public: - /* 00 */ virtual ~ActorNaviBase_Unk3() {} + /* 00 */ virtual ~NaviModelRender() override; /* 3c */ virtual void vfunc_3c() override; /* 40 */ - ActorNaviBase_Unk3(ItemModel *param1); + NaviModelRender(ItemModel *param1); }; class ActorNaviBase : public Actor { @@ -54,7 +54,7 @@ class ActorNaviBase : public Actor { /* 000 (base) */ /* 158 */ Vec3p mOffsetPos; /* 164 */ unk32 mUnk_164; - /* 168 */ ActorNaviBase_Unk3 mUnk_168; + /* 168 */ NaviModelRender modelRender; /* 1c4 */ unk8 mUnk_1c4[0xc]; /* 1d0 */ ActorNaviBase_Unk2 mUnk_1d0; /* 214 */ unk16 mUnk_214; diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp index 831775a25..0b063e3d9 100644 --- a/include/Map/MapBase.hpp +++ b/include/Map/MapBase.hpp @@ -13,6 +13,7 @@ #include "Map/Entrance.hpp" #include "Map/Exit.hpp" #include "Map/TriggerBase.hpp" +#include "Render/MapModelRender.hpp" #include "System/SysNew.hpp" #define MAX_ENTRANCES 0x40 @@ -21,21 +22,6 @@ #define MAX_VIEWPOINTS 8 #define MAX_MAP_UNK_130 0x20 -struct MapBase_Unk_13c { - /* 00 */ unk32 mUnk_00; - /* 04 */ unk32 mUnk_04; - /* 08 */ unk32 mUnk_08; - /* 0c */ -}; - -struct MapBase_Unk_140 { - /* 00 */ unk8 mUnk_00[0x5c]; - /* 5c */ unk8 mUnk_5c; - /* 5d */ unk8 mUnk_5d[3]; - /* 60 */ unk32 *mUnk_60; - /* 64 */ -}; - struct MapBase_Unk_144 { /* 00 */ unk8 mUnk_00[0xc]; /* 0c */ unk32 mUnk_0c; @@ -142,8 +128,8 @@ class MapBase : public SysObject { /* 118 */ std::vector mExits; /* 124 */ std::vector mViewpoints; /* 130 */ std::vector mUnk_130; - /* 13c */ MapBase_Unk_13c *mUnk_13c; - /* 140 */ MapBase_Unk_140 *mUnk_140; + /* 13c */ ItemModel *modelFile; + /* 140 */ MapModelRender *modelRender; /* 144 */ MapBase_Unk_144 *mUnk_144; /* 148 */ s32 mUnk_148; /* 14c */ unk32 mUnk_14c; @@ -171,7 +157,7 @@ class MapBase : public SysObject { /* 28 */ virtual void vfunc_28(s32 param_2); /* 2c */ virtual void vfunc_2c(); /* 30 */ virtual void vfunc_30(s32 param_2); - /* 34 */ virtual bool vfunc_34(char *param_2); + /* 34 */ virtual bool LoadModelFromFile(char *filename); /* 38 */ virtual void vfunc_38(); /* 3c */ virtual void vfunc_3c(); /* 40 */ virtual void vfunc_40(); diff --git a/include/Render/FlowerModelRender.hpp b/include/Render/FlowerModelRender.hpp new file mode 100644 index 000000000..96a892a83 --- /dev/null +++ b/include/Render/FlowerModelRender.hpp @@ -0,0 +1,18 @@ +#pragma once + +#include "ModelRender.hpp" + +class FlowerModelRender : public ModelRender { +public: + /* 00 (base) */ + /* 5c */ unk32 mUnk_5c; + /* 60 */ unk32 mUnk_60; + /* 64 */ q20 mUnk_64; + /* 68 */ + + /* 00 */ virtual ~FlowerModelRender() override; + /* 3c */ virtual void vfunc_3c(ModelRenderCommandsData *renderData) override; + + FlowerModelRender(ItemModel *itemModel, unk32 param2, unk32 param3); + void func_ov014_0212e234(); +}; \ No newline at end of file diff --git a/include/Render/LinkModelRender.hpp b/include/Render/LinkModelRender.hpp new file mode 100644 index 000000000..ec43e9435 --- /dev/null +++ b/include/Render/LinkModelRender.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include "ModelRender.hpp" + +class LinkModelRender : public ModelRender { +public: + /* 00 (base) */ + /* 5c */ s32 modelObjects[10]; + /* 84 */ s32 modelMaterials[5]; + /* 98 */ u8 *mUnk_98; + /* 9c */ unk32 mUnk_9c; + /* a0 */ unk32 mUnk_a0; + /* a4 */ + + /* 00 */ virtual ~LinkModelRender(); + /* 3c */ virtual s32 vfunc_3c(); + + LinkModelRender(ItemModel *itemModel); +}; \ No newline at end of file diff --git a/include/Render/MapModelRender.hpp b/include/Render/MapModelRender.hpp new file mode 100644 index 000000000..3e22e59cb --- /dev/null +++ b/include/Render/MapModelRender.hpp @@ -0,0 +1,16 @@ +#pragma once + +#include "ModelRender.hpp" + +class MapModelRender : public ModelRender { +public: + /* 00 (base) */ + /* 5c */ u8 modelCoverTransparency; + /* 5d */ unk8 mUnk_5d[3]; + /* 60 */ unk32 *mUnk_60; + + virtual ~MapModelRender(); + + MapModelRender(ItemModel *itemModel); + void HideModelCovers(ModelRenderCommandsData *renderData); +}; \ No newline at end of file diff --git a/include/Render/MistModelRender.hpp b/include/Render/MistModelRender.hpp new file mode 100644 index 000000000..9fd90c8bc --- /dev/null +++ b/include/Render/MistModelRender.hpp @@ -0,0 +1,18 @@ +#pragma once + +#include "ModelRender.hpp" + +class MistModelRender : public ModelRender { +public: + /* 00 (base) */ + /* 5c */ unk32 mUnk_5c; + /* 60 */ unk32 mUnk_60; + /* 64 */ unk32 mUnk_64; + /* 68 */ unk32 mUnk_68; + /* 6c */ + + /* 00 */ virtual ~MistModelRender() override; + /* 3c */ virtual void vfunc_3c(ModelRenderCommandsData *renderData) override; + + MistModelRender(ItemModel *itemModel); +}; \ No newline at end of file diff --git a/include/Render/ModelRender.hpp b/include/Render/ModelRender.hpp index d0fca92ab..24090e8ed 100644 --- a/include/Render/ModelRender.hpp +++ b/include/Render/ModelRender.hpp @@ -10,6 +10,15 @@ class ModelRender; +struct TransformationsStruct { + /* 00 */ u32 flags; + /* 04 */ Vec3p scaleVector; + /* 10 */ unk8 mUnk_10[0x18]; + /* 28 */ Mat3p rotationMatrix; + /* 4c */ Vec3p translationVector; + /* 50 */ +}; + struct ModelRender_UnkBoneMatrixStruct { /* 00 */ unk8 mUnk_00[0x28]; /* 28 */ Mat3p mUnk_28; @@ -19,7 +28,7 @@ struct ModelRender_UnkBoneMatrixStruct { struct ModelRender_UnkStruct_4 { /* 00 */ unk32 flags; - /* 04 */ void *mLcdcAddr; + /* 04 */ ItemModel *mLcdcAddr; /* 08 */ void *mUnk_08; // this attribute is related to UnkStruct_ov000_020c0c08 /* 0c */ void *mUnkTransformFunc; /* 10 */ void *mUnk_10; // also related to UnkStruct_ov000_020c0c08 @@ -40,14 +49,57 @@ struct ModelRender_UnkStruct_4 { /* 54 */ }; +struct ModelRender_MaterialData { + /* 00 */ u32 flags; + /* 04 */ u32 dif_amb; + /* 08 */ u32 spe_emi; + /* 0c */ u32 polygon_attr; + /* 10 */ u32 teximage_params; + /* 14 */ u32 pltt_base; + /* 18 */ u8 mUnk_18[0xc]; + /* 24 */ unk32 mUnk_24; + /* 28 */ unk32 mUnk_28; + /* 2c */ u16 width; + /* 2e */ u16 height; + /* 30 */ u8 mUnk_30[0x8]; + /* 38 */ +}; + +// Struct containing data used to render an NSBMD model struct ModelRenderCommandsData { - /* 00 */ u8 command; + /* 00 */ u8 *currentCommand; /* 04 */ ModelRender_UnkStruct_4 *unkStruct4; - /* 08 */ + /* 08 */ u32 flags; + /* 0c */ unk8 mUnk_0c[0x10]; + /* 1c */ void *mUnkFunc_1c; + /* 20 */ unk8 mUnk_20[0x4]; + /* 24 */ void *mUnkFunc_24; + /* 28 */ unk8 mUnk_28[0x68]; + /* 90 */ unk8 mUnk_90; + /* 91 */ unk8 mUnk_91; + /* 92 */ unk8 mUnk_92; + /* 93 */ unk8 mUnk_93[0x19]; + /* ac */ u8 boneVisibilityIndex; + /* ad */ u8 currentMaterial; + /* ae */ u8 boneMatrixIndex; + /* af */ unk8 mUnk_af; + /* b0 */ ModelRender_MaterialData *unkMaterialDataPTR; + /* b4 */ TransformationsStruct *transformations; + /* b8 */ u32 *boneVisibilityPtr; + /* bc */ unk8 mUnk_bc[0x18]; + /* d4 */ void *boneList; + /* d8 */ void *materialList; + /* dc */ void *meshList; + /* e0 */ u32 modelUpScale; + /* e4 */ u32 modelDownScale; + /* e8 */ void *scalingHandler; + /* ec */ void *transformationsHandler; + /* f0 */ void *materialHandler; + /* f4 */ ModelRender_MaterialData materialData; + /* 12c */ unk8 mUnk_12c[0x5c]; + /* 188 */ }; -class ItemModel; - class ModelRender : public SysObject { public: /* 00 (vtable) */ diff --git a/include/Render/SignModelRender.hpp b/include/Render/SignModelRender.hpp new file mode 100644 index 000000000..af60a477d --- /dev/null +++ b/include/Render/SignModelRender.hpp @@ -0,0 +1,24 @@ +#pragma once + +#include "ModelRender.hpp" + +class SignModelRender : public ModelRender { +public: + /* 00 (base) */ + /* 5c */ u16 transparency; + /* 5e */ s16 xRotationAngle; + /* 60 */ s16 yRotationAngle; + /* 62 */ u16 impactAngle; + /* 64 */ Vec3p position; + /* 70 */ Vec3p acceleration; + /* 7c */ + + /* 00 */ virtual ~SignModelRender() override; + + SignModelRender(ItemModel *itemModel); + void SetImpactDirection(Vec3p *dir); + bool CalculateBrokenSignState(); + void UpdateBrokenPiecePosition(ModelRenderCommandsData *renderData); + void SetTransparencyAfterDamage(ModelRenderCommandsData *renderData); + void func_ov014_0212d50c(ModelRenderCommandsData *renderData); +}; \ No newline at end of file diff --git a/include/Render/SkyboxModelRender.hpp b/include/Render/SkyboxModelRender.hpp new file mode 100644 index 000000000..062248db1 --- /dev/null +++ b/include/Render/SkyboxModelRender.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include "ModelRender.hpp" + +struct UnkStruct_SkyboxModelRender_020e518c { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ +}; + +class SkyboxModelRender : public ModelRender { +public: + /* 00 (base) */ + /* 5c */ u8 mUnk_5c; + /* 5d */ unk8 mUnk_5d; + /* 5e */ unk16 mUnk_5e; + /* 60 */ UnkStruct_SkyboxModelRender_020e518c mUnk_60; + /* 6c */ + + /* 00 */ virtual ~SkyboxModelRender(); + /* 40 */ virtual void vfunc_40(); + /* 44 */ virtual s32 vfunc_44(); + + SkyboxModelRender(ItemModel *itemModel); +}; \ No newline at end of file diff --git a/include/Render/SpikeModelRender.hpp b/include/Render/SpikeModelRender.hpp new file mode 100644 index 000000000..b4a927d8e --- /dev/null +++ b/include/Render/SpikeModelRender.hpp @@ -0,0 +1,16 @@ +#pragma once + +#include "ModelRender.hpp" + +class SpikeModelRender : public ModelRender { +public: + /* 00 (base) */ + /* 5c */ q20 spikeRetractionPosition; + /* 60 */ u8 mUnk_60; + /* 61 */ + + /* 00 */ virtual ~SpikeModelRender() override; + /* 3c */ virtual void vfunc_3c(ModelRenderCommandsData *renderData) override; + + SpikeModelRender(ItemModel *itemModel); +}; \ No newline at end of file diff --git a/include/Render/TreasureChestModelRender.hpp b/include/Render/TreasureChestModelRender.hpp new file mode 100644 index 000000000..de254441e --- /dev/null +++ b/include/Render/TreasureChestModelRender.hpp @@ -0,0 +1,15 @@ +#pragma once + +#include "ModelRender.hpp" + +class TreasureChestModelRender : public ModelRender { +public: + /* 00 (base) */ + /* 5c */ bool isClosed; + /* 5d */ + + /* 00 */ virtual ~TreasureChestModelRender() override; + /* 3c */ virtual void vfunc_3c(ModelRenderCommandsData *renderData) override; + + TreasureChestModelRender(ItemModel *itemModel); +}; \ No newline at end of file diff --git a/include/Unknown/UnkStruct_ov000_020c0c08.hpp b/include/Unknown/UnkStruct_ov000_020c0c08.hpp index 2e16bed32..82b6193b0 100644 --- a/include/Unknown/UnkStruct_ov000_020c0c08.hpp +++ b/include/Unknown/UnkStruct_ov000_020c0c08.hpp @@ -19,7 +19,28 @@ struct UnkStruct_ov000_020c0c08_04 { /* 20 */ }; -class ItemModel; +class ItemModel { +public: + /* 00 */ s32 fileSize; + /* 04 */ s32 renderCmdsOffset; + /* 08 */ s32 materialsOffset; + /* 0c */ s32 meshesOffset; + /* 10 */ s32 invBindsOffset; + /* 14 */ unk8 mUnk_14[3]; + /* 17 */ u8 numBoneMatrices; + /* 18 */ u8 numMaterials; + /* 19 */ u8 numMeshes; + /* 1a */ unk8 mUnk_1a[2]; + /* 1c */ s32 up_scale; + /* 20 */ s32 down_scale; + /* 24 */ s16 numVertices; + /* 26 */ s16 numPolygons; + /* 28 */ s16 numTriangles; + /* 2a */ s16 numQuads; + /* 2c */ unk8 boundingBox[0xc]; + /* 38 */ unk8 mUnk_38[0x8]; + /* 40 */ void *boneList; +}; class UnkStruct_ov000_020c0c08 : public SysObject { public: diff --git a/src/00_Core/Map/MapBase.cpp b/src/00_Core/Map/MapBase.cpp index e0cdf2642..8f9c96900 100644 --- a/src/00_Core/Map/MapBase.cpp +++ b/src/00_Core/Map/MapBase.cpp @@ -181,11 +181,11 @@ ARM void MapBase::func_ov00_0207dea0(bool param_2) { } ARM void MapBase::vfunc_b0(unk32 param_2, unk32 param_3) { - if (this->mUnk_13c == NULL) { + if (this->modelFile == NULL) { return; } - func_020196fc((ItemModel *) this->mUnk_13c, param_2); - func_020196bc((ItemModel *) this->mUnk_13c, param_3); + func_020196fc((ItemModel *) this->modelFile, param_2); + func_020196bc((ItemModel *) this->modelFile, param_3); return; } @@ -194,10 +194,10 @@ ARM bool MapBase::func_ov00_0207e08c(s32 *param_2, s32 param_3) { int iVar1; int iVar2; - if (this->mUnk_13c == NULL) { + if (this->modelFile == NULL) { return false; } - iVar1 = this->mUnk_13c->mUnk_00 + this->mUnk_13c->mUnk_08; + iVar1 = this->modelFile->fileSize + this->modelFile->materialsOffset; if (iVar1 == 0) { return false; } @@ -224,7 +224,7 @@ ARM s32 MapBase::func_ov00_0207e0f0(s32 param_2) { int *iVar8; int iVar7; u32 uVar8; - MapBase_Unk_13c *pMVar9; + ItemModel *pMVar9; int *iVar9; int iVar13; int *iVar10; @@ -232,11 +232,11 @@ ARM s32 MapBase::func_ov00_0207e0f0(s32 param_2) { int iVar15; u32 uStack_30; - pMVar9 = this->mUnk_13c; + pMVar9 = this->modelFile; if (pMVar9 == NULL) { return -1; } - puVar4 = (u16 *) ((int) &pMVar9->mUnk_00 + pMVar9->mUnk_08); + puVar4 = (u16 *) ((int) &pMVar9->fileSize + pMVar9->materialsOffset); if (puVar4 != (u16 *) 0x0) { iVar6 = (int) puVar4 + (u32) *puVar4; if (iVar6 == 0) { @@ -303,7 +303,7 @@ ARM s32 MapBase::func_ov00_0207e28c(s32 param_2) { int iVar13; u32 uVar14; int *iVar10; - MapBase_Unk_13c *pMVar15; + ItemModel *pMVar15; int iVar16; int iVar17; u32 uVar18; @@ -312,11 +312,11 @@ ARM s32 MapBase::func_ov00_0207e28c(s32 param_2) { u32 uStack_30; int *iVar5; - pMVar15 = this->mUnk_13c; + pMVar15 = this->modelFile; if (pMVar15 == NULL) { return -1; } - iVar3 = (int *) ((int) &pMVar15->mUnk_00 + pMVar15->mUnk_08); + iVar3 = (int *) ((int) &pMVar15->fileSize + pMVar15->materialsOffset); if (iVar3 != NULL) { iVar4 = (int *) ((int) iVar3 + (u32) * (u16 *) ((int) iVar3 + 2)); if (iVar4 == NULL) { @@ -1346,12 +1346,12 @@ ARM void MapBase::func_ov00_0207f924(unk32 param_2) { } ARM unk32 *MapBase::func_ov00_0207f934() { - return !this->mUnk_140 ? NULL : this->mUnk_140->mUnk_60; + return !this->modelRender ? NULL : this->modelRender->mUnk_60; } ARM void MapBase::func_ov00_0207f948(unk32 *param_2) { - if (this->mUnk_140 != NULL) { - this->mUnk_140->mUnk_60 = param_2; + if (this->modelRender != NULL) { + this->modelRender->mUnk_60 = param_2; } } @@ -2235,7 +2235,7 @@ ARM void MapBase::func_ov00_02080de8(unk32 param_2) { uVar2 = 0x1f; } LAB_arm9_ov000__02080ec8: - this->mUnk_140->mUnk_5c = uVar2; + this->modelRender->modelCoverTransparency = uVar2; } ARM void MapBase::func_ov00_02080edc() { diff --git a/src/00_Core/Render/MapModelRender.cpp b/src/00_Core/Render/MapModelRender.cpp new file mode 100644 index 000000000..8201f619c --- /dev/null +++ b/src/00_Core/Render/MapModelRender.cpp @@ -0,0 +1,35 @@ +#include "Render/MapModelRender.hpp" + +extern "C" void func_02018cb8(ModelRender_UnkStruct_4 *param_1, void (*param_2)(ModelRenderCommandsData *)); + +void func_ov000_0209d9e0(ModelRenderCommandsData *renderData); +void HideMapModelCover(ModelRenderCommandsData *renderData); + +ARM MapModelRender::MapModelRender(ItemModel *itemModel) : + ModelRender(itemModel) { + this->modelCoverTransparency = 0; + this->mUnk_60 = NULL; + this->mUnk_04.mUnk_2c = this; + func_02018cb8(&this->mUnk_04, &func_ov000_0209d9e0); +} + +MapModelRender::~MapModelRender() {} + +void MapModelRender::HideModelCovers(ModelRenderCommandsData *renderData) { + u32 polygonId = (renderData->unkMaterialDataPTR->polygon_attr & 0x3f000000) >> 0x18; + if (polygonId == 0x1b) { // Polygon ID for model covers (e.g. cv_section) + u32 transparency = this->modelCoverTransparency << 0x10; + renderData->unkMaterialDataPTR->polygon_attr = + renderData->unkMaterialDataPTR->polygon_attr & 0xffe0ffff | transparency; + } +} + +void func_ov000_0209d9e0(ModelRenderCommandsData *renderData) { + renderData->mUnkFunc_1c = &HideMapModelCover; + renderData->mUnk_90 = 2; +} + +void HideMapModelCover(ModelRenderCommandsData *renderData) { + ((MapModelRender *) renderData->unkStruct4->mUnk_2c)->HideModelCovers(renderData); + return; +} \ No newline at end of file diff --git a/src/00_Core/Render/MistModelRender.cpp b/src/00_Core/Render/MistModelRender.cpp new file mode 100644 index 000000000..70d245e17 --- /dev/null +++ b/src/00_Core/Render/MistModelRender.cpp @@ -0,0 +1,39 @@ +#include "Render/MistModelRender.hpp" +#include "Game/Game.hpp" + +ARM MistModelRender::MistModelRender(ItemModel *itemModel) : + ModelRender(itemModel), + mUnk_5c(0), + mUnk_60(4), + mUnk_64(0), + mUnk_68(0) { + this->UnkInit_Struct4_Params(4, 2); +} + +ARM MistModelRender::~MistModelRender() {} + +ARM void MistModelRender::vfunc_3c(ModelRenderCommandsData *renderData) { + ModelRender_MaterialData *matPtr = renderData->unkMaterialDataPTR; + matPtr->flags &= ~(0x4); + + if (gGame.mUnk_101 == 0) { + this->mUnk_68 += this->mUnk_60; + + if (this->mUnk_68 >= 0x1000) { + this->mUnk_68 = 0; + } else if (this->mUnk_68 <= 0) { + this->mUnk_68 = 0x1000; + } + + this->mUnk_64 += this->mUnk_5c; + + if (this->mUnk_64 >= 0x2000) { + this->mUnk_64 = 0; + } else if (this->mUnk_64 <= 0) { + this->mUnk_64 = 0x2000; + } + } + + matPtr->mUnk_24 = this->mUnk_64; + matPtr->mUnk_28 = this->mUnk_68; +} \ No newline at end of file diff --git a/src/00_Core/Render/SkyboxModelRender.cpp b/src/00_Core/Render/SkyboxModelRender.cpp new file mode 100644 index 000000000..efa3f1af4 --- /dev/null +++ b/src/00_Core/Render/SkyboxModelRender.cpp @@ -0,0 +1,22 @@ +#include "Render/SkyboxModelRender.hpp" + +static UnkStruct_SkyboxModelRender_020e518c data_ov000_020e518c = {0, 0x180000, + 0x280000}; // this is initialized by a static initializer + +ARM SkyboxModelRender::SkyboxModelRender(ItemModel *itemModel) : + ModelRender(itemModel), + mUnk_5c(1), + mUnk_5e(0), + mUnk_60(data_ov000_020e518c) {} + +SkyboxModelRender::~SkyboxModelRender() {} + +void SkyboxModelRender::vfunc_40() { + if (this->mUnk_5c != 0) { + this->mUnk_5e += 7; + } +} + +s32 SkyboxModelRender::vfunc_44() { + return 1; +} \ No newline at end of file diff --git a/src/04_Load/Actor/Navi/ActorNavi_04.cpp b/src/04_Load/Actor/Navi/ActorNavi_04.cpp index d442f9091..43fa801b6 100644 --- a/src/04_Load/Actor/Navi/ActorNavi_04.cpp +++ b/src/04_Load/Actor/Navi/ActorNavi_04.cpp @@ -6,7 +6,7 @@ extern NsFile *data_ov000_020e67ac; THUMB ActorNaviBase::ActorNaviBase() : mUnk_164(0), - mUnk_168(data_ov000_020ee1f8), + modelRender(data_ov000_020ee1f8), mUnk_1d0(GetJntAnimation(FindJntSection(data_ov000_020e67ac), 0), data_ov000_020ee1f8), mUnk_214(0), mUnk_222(-1), @@ -48,7 +48,7 @@ THUMB bool ActorNaviBase::Init() { return true; } -ActorNaviBase_Unk3::ActorNaviBase_Unk3(ItemModel *param1) : +THUMB NaviModelRender::NaviModelRender(ItemModel *param1) : ModelRender(param1) { this->UnkInit_Struct4_Params(6, 3); } diff --git a/src/04_Load/Map/MapBase.cpp b/src/04_Load/Map/MapBase.cpp index 7e93b2f07..fe044dc7e 100644 --- a/src/04_Load/Map/MapBase.cpp +++ b/src/04_Load/Map/MapBase.cpp @@ -9,7 +9,7 @@ void MapBase::vfunc_0c(Course *param_2) {} void MapBase::vfunc_10() {} void MapBase::vfunc_2c() {} void MapBase::vfunc_30(s32 param_2) {} -bool MapBase::vfunc_34(char *param_2) {} +bool MapBase::LoadModelFromFile(char *filename) {} void MapBase::vfunc_38() {} void MapBase::vfunc_3c() {} void MapBase::vfunc_40() {} diff --git a/src/04_Load/Render/LinkModelRender_04.cpp b/src/04_Load/Render/LinkModelRender_04.cpp new file mode 100644 index 000000000..0ea427b09 --- /dev/null +++ b/src/04_Load/Render/LinkModelRender_04.cpp @@ -0,0 +1,34 @@ +#include "Render/LinkModelRender.hpp" + +char gLinkBodyParts[10][16] = {"center", "body_chn", "waist_chn", "neck_jnt", "cl_podA", + "cl_LhandA", "cl_RhandA", "LlegB_jnt", "RlegB_jnt", "head_jnt"}; +char gLinkMaterials[5][16] = {"swA", "sheath", "swB", "sheathB", "body_all"}; + +extern "C" u32 *data_027e0ce0[]; +extern "C" void func_ov000_020aa084(LinkModelRender *param1, s32 param2); +extern "C" void func_ov000_020aa0f0(LinkModelRender *param1, s32 param2, s32 param3); + +THUMB LinkModelRender::LinkModelRender(ItemModel *itemModel) : + ModelRender(itemModel), + mUnk_9c(0), + mUnk_a0(0) { + for (int i = 0; i < 10; i++) { + char *modelObj = gLinkBodyParts[i]; + this->modelObjects[i] = this->GetObjectIndex(modelObj); + } + + for (int i = 0; i < 5; i++) { + char *modelMat = gLinkMaterials[i]; + this->modelMaterials[i] = this->GetMaterialIndex(modelMat); + } + + this->mUnk_98 = (u8 *) SysObject::operator new[](itemModel->numBoneMatrices, data_027e0ce0[1], 4); + + for (int i = 0; i < itemModel->numBoneMatrices; i++) { + this->mUnk_98[i] = 0; + } + + func_ov000_020aa084(this, this->modelObjects[1]); + func_ov000_020aa0f0(this, 0, 0); + func_ov000_020aa0f0(this, 2, 0); +} \ No newline at end of file diff --git a/src/14_Land/Render/FlowerModelRender.cpp b/src/14_Land/Render/FlowerModelRender.cpp new file mode 100644 index 000000000..81ffefcaa --- /dev/null +++ b/src/14_Land/Render/FlowerModelRender.cpp @@ -0,0 +1,98 @@ +#include "Render/FlowerModelRender.hpp" + +extern "C" unk32 func_0201e388(void *param1, const char *param2); + +void func_ov014_0212e234(); + +FlowerModelRender::FlowerModelRender(ItemModel *itemModel, unk32 param2, unk32 param3) : + ModelRender(itemModel), + mUnk_5c(param3), + mUnk_60(param2), + mUnk_64(INT_TO_Q20(1)) { + this->func_ov014_0212e234(); +} + +void FlowerModelRender::func_ov014_0212e234() { + if (this->mUnk_60 != 0) { + this->UnkInit_Struct4_Params(2, 2); + } else { + this->UnkInit_Struct4_Params(6, 2); + } +} + +#pragma readonly_strings on +void FlowerModelRender::vfunc_3c(ModelRenderCommandsData *renderData) { + u32 boneIndex; + u32 visibilityIndex; + + switch (this->mUnk_60) { + case 1: + if (this->mUnk_5c == 1) { + boneIndex = func_0201e388(&renderData->unkStruct4->mLcdcAddr->boneList, "base"); + } else { + boneIndex = func_0201e388(&renderData->unkStruct4->mLcdcAddr->boneList, "Fbomb_h"); + } + + if ((renderData->flags & 4) != 0) { + visibilityIndex = renderData->boneVisibilityIndex; + } else { + visibilityIndex = -1; + } + + if (boneIndex == visibilityIndex) { + *renderData->boneVisibilityPtr = 0; + } + break; + + case 2: + if (this->mUnk_5c == 1) { + boneIndex = func_0201e388(&renderData->unkStruct4->mLcdcAddr->boneList, "seed"); + } else { + boneIndex = func_0201e388(&renderData->unkStruct4->mLcdcAddr->boneList, "Fbomb_f"); + } + if ((renderData->flags & 4) != 0) { + visibilityIndex = renderData->boneVisibilityIndex; + } else { + visibilityIndex = -1; + } + if (boneIndex == visibilityIndex) { + *renderData->boneVisibilityPtr = 0; + } + break; + + default: + if (this->mUnk_5c == 1) { + boneIndex = func_0201e388(&renderData->unkStruct4->mLcdcAddr->boneList, "seed"); + } else { + boneIndex = func_0201e388(&renderData->unkStruct4->mLcdcAddr->boneList, "Fbomb_f"); + } + + if ((renderData->flags & 0x10) != 0) { + visibilityIndex = renderData->boneMatrixIndex; + } else { + visibilityIndex = -1; + } + + if (boneIndex == visibilityIndex) { + TransformationsStruct *tf = renderData->transformations; + u32 flags = tf->flags; + flags &= ~1; + if (this->mUnk_64 != INT_TO_Q20(1)) { + flags &= ~4; + } + tf->flags = flags; + tf->scaleVector.y = this->mUnk_64; + tf->scaleVector.x = this->mUnk_64; + tf->scaleVector.z = this->mUnk_64; + if (this->mUnk_64 != INT_TO_Q20(1)) { + renderData->transformations->translationVector.y = MUL_Q20(this->mUnk_64, FLOAT_TO_Q20(0.2)); + renderData->transformations->translationVector.x = 0; + renderData->transformations->translationVector.z = 0; + } + } + break; + } +} +#pragma readonly_strings reset + +FlowerModelRender::~FlowerModelRender() {} \ No newline at end of file diff --git a/src/14_Land/Render/SignModelRender.cpp b/src/14_Land/Render/SignModelRender.cpp new file mode 100644 index 000000000..790ea89fd --- /dev/null +++ b/src/14_Land/Render/SignModelRender.cpp @@ -0,0 +1,119 @@ +#include "Render/SignModelRender.hpp" + +extern "C" void func_02018cb8(ModelRender_UnkStruct_4 *param_1, void (*param_2)(ModelRenderCommandsData *)); +extern "C" void ApproachAngle_thunk(u16 *src, s16 dst, u32 param3); +extern "C" unk32 func_0201e388(void *param1, const char *param2); + +void func_ov014_0212d564(ModelRenderCommandsData *renderData); +void func_ov014_0212d534(ModelRenderCommandsData *renderData); +void func_ov014_0212d54c(ModelRenderCommandsData *renderData); + +SignModelRender::SignModelRender(ItemModel *itemModel) : + ModelRender(itemModel), + transparency(0), + xRotationAngle(0), + yRotationAngle(0), + impactAngle(0) { + position.x = 0; + position.y = 0; + position.z = 0; + acceleration.x = 0; + acceleration.y = 0; + acceleration.z = 0; + this->mUnk_04.mUnk_2c = this; + func_02018cb8(&this->mUnk_04, &func_ov014_0212d564); +} + +void SignModelRender::SetImpactDirection(Vec3p *dir) { + Vec3p tempVec = *dir; + if (Vec3p_TryNormalize(&tempVec)) { + Vec3p_Scale(&tempVec, FLOAT_TO_Q20(0.04)); + } + + q20 tempz = tempVec.z; + q20 tempx = tempVec.x; + + this->acceleration.x = tempx; + this->acceleration.y = FLOAT_TO_Q20(0.15); + this->acceleration.z = tempz; + this->impactAngle = FX_Atan2Idx(dir->x, dir->z); + this->transparency = 0; +} + +bool SignModelRender::CalculateBrokenSignState() { + this->acceleration.y -= FLOAT_TO_Q20(0.05); + Vec3p_Add(&this->position, &this->acceleration, &this->position); + if (this->position.y <= -FLOAT_TO_Q20(0.8)) { + this->acceleration.x = 0; + this->acceleration.y = 0; + this->acceleration.z = 0; + this->position.y = -FLOAT_TO_Q20(0.8); + this->transparency += 1; + } else { + ApproachAngle_thunk((u16 *) &this->yRotationAngle, this->impactAngle, 1000); + } + ApproachAngle_thunk((u16 *) &this->xRotationAngle, -FLOAT_TO_Q20(4), 3000); + return 0x1e <= this->transparency; +} + +void SignModelRender::UpdateBrokenPiecePosition(ModelRenderCommandsData *renderData) { + if (renderData->currentCommand[1] == func_0201e388(&renderData->unkStruct4->mLcdcAddr->boneList, "kanbanB")) { + u32 flag = renderData->transformations->flags; + u32 newFlag = flag & ~4; + if (this->xRotationAngle != 0) { + newFlag = flag & ~2; + } + renderData->transformations->flags = newFlag; + + (renderData->transformations->translationVector).y = (this->position).y + FLOAT_TO_Q20(0.8); + (renderData->transformations->translationVector).x = (this->position).x; + (renderData->transformations->translationVector).z = (this->position).z; + + if (this->xRotationAngle != 0) { + Mat3p_InitXRotation(&renderData->transformations->rotationMatrix, SIN((u16) this->xRotationAngle), + COS((u16) this->xRotationAngle)); + Mat3p rotMatrix; + Mat3p_InitYRotation(&rotMatrix, SIN((u16) this->yRotationAngle), COS((u16) this->yRotationAngle)); + Mat3p_Multiply(&renderData->transformations->rotationMatrix, &rotMatrix, + &renderData->transformations->rotationMatrix); + } + } +} + +void SignModelRender::SetTransparencyAfterDamage(ModelRenderCommandsData *renderData) { + if (this->transparency != 0) { + ItemModel *itemPTR = renderData->unkStruct4->mLcdcAddr; + u32 matIndex = func_0201e388((void *) ((int) itemPTR + itemPTR->materialsOffset + 4), "kanban_mat"); + s32 currentMaterial; + ModelRender_MaterialData *materialPtr = renderData->unkMaterialDataPTR; + if ((renderData->flags & 8) != 0) { + currentMaterial = (s32) renderData->currentMaterial; + } else { + currentMaterial = -1; + } + if (matIndex == currentMaterial) { + materialPtr->polygon_attr = materialPtr->polygon_attr & 0xffe0ffff | (0x1f - this->transparency) << 16; + } + } +} + +void SignModelRender::func_ov014_0212d50c(ModelRenderCommandsData *renderData) { + renderData->mUnkFunc_24 = (void *) &func_ov014_0212d534; + renderData->mUnk_92 = 2; + renderData->mUnkFunc_1c = (void *) &func_ov014_0212d54c; + renderData->mUnk_90 = 2; +} + +void func_ov014_0212d534(ModelRenderCommandsData *renderData) { + ((SignModelRender *) renderData->unkStruct4->mUnk_2c)->UpdateBrokenPiecePosition(renderData); +} + +void func_ov014_0212d54c(ModelRenderCommandsData *renderData) { + ((SignModelRender *) renderData->unkStruct4->mUnk_2c)->SetTransparencyAfterDamage(renderData); +} + +void func_ov014_0212d564(ModelRenderCommandsData *renderData) { + ((SignModelRender *) renderData->unkStruct4->mUnk_2c)->func_ov014_0212d50c(renderData); +} + +SignModelRender::~SignModelRender() {} \ No newline at end of file diff --git a/src/14_Land/Render/SpikeModelRender.cpp b/src/14_Land/Render/SpikeModelRender.cpp new file mode 100644 index 000000000..51115b4ed --- /dev/null +++ b/src/14_Land/Render/SpikeModelRender.cpp @@ -0,0 +1,27 @@ +#include "Render/SpikeModelRender.hpp" + +extern "C" unk32 func_0201e388(void *param1, const char *param2); + +SpikeModelRender::SpikeModelRender(ItemModel *itemModel) : + ModelRender(itemModel), + spikeRetractionPosition(0), + mUnk_60(1) { + this->UnkInit_Struct4_Params(6, 2); +} + +#pragma readonly_strings on +void SpikeModelRender::vfunc_3c(ModelRenderCommandsData *renderData) { + if (renderData->currentCommand[1] == func_0201e388(&renderData->unkStruct4->mLcdcAddr->boneList, "spike")) { + if (this->mUnk_60 != '\0') { + renderData->transformations->flags = renderData->transformations->flags & ~4; + renderData->transformations->translationVector.y = this->spikeRetractionPosition; + renderData->transformations->translationVector.x = 0; + renderData->transformations->translationVector.z = 0; + } else { + *renderData->boneVisibilityPtr = 0; + } + } +} +#pragma readonly_strings reset + +SpikeModelRender::~SpikeModelRender() {} \ No newline at end of file diff --git a/src/14_Land/Render/TreasureChestModelRender.cpp b/src/14_Land/Render/TreasureChestModelRender.cpp new file mode 100644 index 000000000..7def3acec --- /dev/null +++ b/src/14_Land/Render/TreasureChestModelRender.cpp @@ -0,0 +1,20 @@ +#include "Render/TreasureChestModelRender.hpp" + +extern "C" unk32 func_0201e388(void *param1, const char *param2); + +const char boxBModelName[20] = "box_B"; + +TreasureChestModelRender::TreasureChestModelRender(ItemModel *itemModel) : + ModelRender(itemModel), + isClosed(true) { + this->UnkInit_Struct4_Params(2, 2); +} + +void TreasureChestModelRender::vfunc_3c(ModelRenderCommandsData *renderData) { + s32 boneIndex = func_0201e388(&renderData->unkStruct4->mLcdcAddr->boneList, boxBModelName); + if (renderData->currentCommand[1] == boneIndex && !this->isClosed) { + *renderData->boneVisibilityPtr = 0; + } +} + +TreasureChestModelRender::~TreasureChestModelRender() {} \ No newline at end of file