mirror of
https://github.com/zeldaret/ph
synced 2026-05-24 07:10:52 -04:00
Decomp ModelRender (#139)
* decomp ModelRender * fix ModelRender function name * fix other ModelRender references * reloc vtables * fix ModelRender obect size * fix matches * match 100%
This commit is contained in:
@@ -111,7 +111,7 @@ src/00_Core/Player/LinkStateDamage.cpp:
|
||||
|
||||
src/00_Core/Player/LinkStateFollow.cpp:
|
||||
.text start:0x020a8f74 end:0x020a92a4
|
||||
.data start:0x020e575c end:0x020e58e8
|
||||
.data start:0x020e575c end:0x020e57f0
|
||||
|
||||
src/00_Core/Player/LinkStateInteract.cpp:
|
||||
.text start:0x020aa32c end:0x020abd78
|
||||
@@ -153,3 +153,7 @@ src/00_Core/Save/AdventureFlags.cpp:
|
||||
|
||||
src/00_Core/Game/GameModePlay.cpp:
|
||||
.text start:0x02079d28 end:0x02079ddc
|
||||
|
||||
src/00_Core/Render/ModelRender.cpp:
|
||||
.text start:0x020a956c end:0x020a99e0
|
||||
.data start:0x020e5818 end:0x020e5860
|
||||
@@ -4799,18 +4799,18 @@ from:0x020a92f8 kind:load to:0x020e57f0 module:overlay(0)
|
||||
from:0x020a9524 kind:load to:0x027e0d78 module:dtcm
|
||||
from:0x020a9538 kind:arm_call to:0x0202ea0c module:main
|
||||
from:0x020a9560 kind:arm_call to:0x0202ea0c module:main
|
||||
from:0x020a9584 kind:load to:0x020e5820 module:overlay(0)
|
||||
from:0x020a95a0 kind:load to:0x020e5820 module:overlay(0)
|
||||
from:0x020a9584 kind:load to:0x020e5818 add:8 module:overlay(0)
|
||||
from:0x020a95a0 kind:load to:0x020e5818 add:8 module:overlay(0)
|
||||
from:0x020a95b2 kind:thumb_call_arm to:0x0202ea18 module:main
|
||||
from:0x020a95b8 kind:thumb_call to:0x020b3ea8 module:overlay(0)
|
||||
from:0x020a95c0 kind:load to:0x020e5820 module:overlay(0)
|
||||
from:0x020a95c0 kind:load to:0x020e5818 add:8 module:overlay(0)
|
||||
from:0x020a95d2 kind:thumb_call_arm to:0x0202ea18 module:main
|
||||
from:0x020a95d8 kind:thumb_call to:0x020b3ea8 module:overlay(0)
|
||||
from:0x020a95de kind:thumb_call_arm to:0x0202ea0c module:main
|
||||
from:0x020a95e8 kind:load to:0x020e5820 module:overlay(0)
|
||||
from:0x020a95e8 kind:load to:0x020e5818 add:8 module:overlay(0)
|
||||
from:0x020a95fa kind:thumb_call_arm to:0x0202ea18 module:main
|
||||
from:0x020a9600 kind:thumb_call to:0x020b3ea8 module:overlay(0)
|
||||
from:0x020a9608 kind:load to:0x020e5820 module:overlay(0)
|
||||
from:0x020a9608 kind:load to:0x020e5818 add:8 module:overlay(0)
|
||||
from:0x020a9620 kind:load to:0x020189dc module:main
|
||||
from:0x020a9664 kind:arm_call to:0x020183b4 module:main
|
||||
from:0x020a9670 kind:arm_call to:0x020079d8 module:main
|
||||
|
||||
@@ -1992,26 +1992,26 @@ _ZN11ModelRenderD1Ev kind:function(thumb,size=0x20) addr:0x020a95a4
|
||||
_ZN11ModelRenderD0Ev kind:function(thumb,size=0x28) addr:0x020a95c4
|
||||
_ZN11ModelRenderD2Ev kind:function(thumb,size=0x20) addr:0x020a95ec
|
||||
_ZN11ModelRender14GetLcdcAddressEv kind:function(arm,size=0x8) addr:0x020a960c
|
||||
_ZN11ModelRender8vfunc_0cEP9ItemModel kind:function(arm,size=0x10) addr:0x020a9614
|
||||
_ZN11ModelRender19func_ov000_020a9624Ei kind:function(arm,size=0x2c) addr:0x020a9624
|
||||
_ZN11ModelRender28Init_ModelRender_UnkStruct_4EP9ItemModel kind:function(arm,size=0x10) addr:0x020a9614
|
||||
_ZN11ModelRender16UnkGetBoneMatrixEi kind:function(arm,size=0x2c) addr:0x020a9624
|
||||
_ZN11ModelRender12SetTransformEP5Vec3pP5Mat3pS1_ kind:function(arm,size=0x84) addr:0x020a9650
|
||||
_ZN11ModelRender22SetRotationTranslationEP5Mat3pP5Vec3p kind:function(arm,size=0x6c) addr:0x020a96d4
|
||||
_ZN11ModelRender14SetTranslationEP5Vec3p kind:function(arm,size=0x24) addr:0x020a9740
|
||||
_ZN11ModelRender20PushGeometryCommandsEv kind:function(arm,size=0x6c) addr:0x020a9764
|
||||
_ZN11ModelRender8vfunc_20Ev kind:function(arm,size=0x10) addr:0x020a97d0
|
||||
_ZN11ModelRender18ExecRenderCommandsEv kind:function(arm,size=0x10) addr:0x020a97d0
|
||||
_ZN11ModelRender8vfunc_24EP24UnkStruct_ov000_020c0c08 kind:function(arm,size=0x18) addr:0x020a97e0
|
||||
_ZN11ModelRender8vfunc_28Ev kind:function(arm,size=0x6c) addr:0x020a97f8
|
||||
_ZN11ModelRender8vfunc_2cEv kind:function(arm,size=0x2c) addr:0x020a9864
|
||||
_ZN11ModelRender8vfunc_34Ev kind:function(arm,size=0x2c) addr:0x020a9890
|
||||
_ZN11ModelRender8vfunc_30Ev kind:function(arm,size=0x2c) addr:0x020a98bc
|
||||
_ZN11ModelRender19func_ov000_020a98e8Ei kind:function(arm,size=0x24) addr:0x020a98e8
|
||||
_ZN11ModelRender19func_ov000_020a990cEi kind:function(arm,size=0x2c) addr:0x020a990c
|
||||
_ZN11ModelRender19func_ov000_020a9938Ei kind:function(thumb,size=0x28) addr:0x020a9938
|
||||
_ZN11ModelRender19func_ov000_020a9960EPv kind:function(arm,size=0x8) addr:0x020a9960
|
||||
_ZN11ModelRender14GetObjectIndexEPc kind:function(arm,size=0x24) addr:0x020a98e8
|
||||
_ZN11ModelRender16GetMaterialIndexEPc kind:function(arm,size=0x2c) addr:0x020a990c
|
||||
_ZN11ModelRender20InitBoneMatrixArraysEj kind:function(thumb,size=0x28) addr:0x020a9938
|
||||
_ZN11ModelRender22SetUnkBoneMatrixArray1EP31ModelRender_UnkBoneMatrixStruct kind:function(arm,size=0x8) addr:0x020a9960
|
||||
_ZN11ModelRender8vfunc_38Ev kind:function(arm,size=0x2c) addr:0x020a9968
|
||||
_ZN11ModelRender8vfunc_3cEv kind:function(arm,size=0x4) addr:0x020a9994
|
||||
_ZN11ModelRender19func_ov000_020a9998Eii kind:function(arm,size=0x28) addr:0x020a9998
|
||||
_ZN11ModelRender19func_ov000_020a99c0Ev kind:function(arm,size=0x20) addr:0x020a99c0
|
||||
_ZN11ModelRender8vfunc_3cEP23ModelRenderCommandsData kind:function(arm,size=0x4) addr:0x020a9994
|
||||
_ZN11ModelRender22UnkInit_Struct4_ParamsEhh kind:function(arm,size=0x28) addr:0x020a9998
|
||||
_Z19func_ov000_020a99c0P23ModelRenderCommandsData kind:function(arm,size=0x20) addr:0x020a99c0
|
||||
func_ov000_020a99e0 kind:function(thumb,size=0x40) addr:0x020a99e0
|
||||
func_ov000_020a9a20 kind:function(thumb,size=0x20) addr:0x020a9a20
|
||||
func_ov000_020a9a40 kind:function(thumb,size=0x28) addr:0x020a9a40
|
||||
@@ -4797,7 +4797,8 @@ data_ov000_020e5778 kind:data(any) addr:0x020e5778
|
||||
_ZTV15LinkStateFollow kind:data(any) addr:0x020e57a4
|
||||
data_ov000_020e57f0 kind:data(any) addr:0x020e57f0
|
||||
data_ov000_020e5808 kind:data(any) addr:0x020e5808
|
||||
data_ov000_020e5820 kind:data(any) addr:0x020e5820
|
||||
_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
|
||||
data_ov000_020e58e8 kind:data(any) addr:0x020e58e8
|
||||
|
||||
@@ -802,7 +802,7 @@ func_02018ae8 kind:function(arm,size=0x68) addr:0x02018ae8
|
||||
func_02018b50 kind:function(arm,size=0x78) addr:0x02018b50
|
||||
func_02018bc8 kind:function(arm,size=0x74) addr:0x02018bc8
|
||||
func_02018c3c kind:function(arm,size=0x54) addr:0x02018c3c
|
||||
func_02018c90 kind:function(arm,size=0x14) addr:0x02018c90
|
||||
UnkInit_ModelRender_Struct4_Params kind:function(arm,size=0x14) addr:0x02018c90
|
||||
func_02018ca4 kind:function(arm,size=0x14) addr:0x02018ca4
|
||||
func_02018cb8 kind:function(arm,size=0x8) addr:0x02018cb8
|
||||
func_02018cc0 kind:function(arm,size=0xc) addr:0x02018cc0
|
||||
@@ -847,7 +847,7 @@ func_0201987c kind:function(arm,size=0x40) addr:0x0201987c
|
||||
func_020198bc kind:function(arm,size=0x48) addr:0x020198bc
|
||||
func_02019904 kind:function(arm,size=0x17c) addr:0x02019904
|
||||
func_02019a80 kind:function(arm,size=0x68) addr:0x02019a80
|
||||
func_02019ae8 kind:function(arm,size=0xdc) addr:0x02019ae8
|
||||
ExecModelRenderCommands kind:function(arm,size=0xdc) addr:0x02019ae8
|
||||
func_02019bc4 kind:function(arm,size=0x28) addr:0x02019bc4
|
||||
func_02019bec kind:function(arm,size=0x28) addr:0x02019bec
|
||||
func_02019c14 kind:function(arm,size=0x308) addr:0x02019c14
|
||||
|
||||
@@ -111,7 +111,7 @@ src/00_Core/Player/LinkStateDamage.cpp:
|
||||
|
||||
src/00_Core/Player/LinkStateFollow.cpp:
|
||||
.text start:0x020a8f14 end:0x020a9244
|
||||
.data start:0x020e56fc end:0x020e5888
|
||||
.data start:0x020e56fc end:0x020e5790
|
||||
|
||||
src/00_Core/Player/LinkStateInteract.cpp:
|
||||
.text start:0x020aa2cc end:0x020abd18
|
||||
@@ -153,3 +153,7 @@ src/00_Core/Save/AdventureFlags.cpp:
|
||||
|
||||
src/00_Core/Game/GameModePlay.cpp:
|
||||
.text start:0x02079cc8 end:0x02079d7c
|
||||
|
||||
src/00_Core/Render/ModelRender.cpp:
|
||||
.text start:0x020a950c end:0x020a9980
|
||||
.data start:0x020e57b8 end:0x020e5800
|
||||
@@ -4799,18 +4799,18 @@ from:0x020a9298 kind:load to:0x020e5790 module:overlay(0)
|
||||
from:0x020a94c4 kind:load to:0x027e0d78 module:dtcm
|
||||
from:0x020a94d8 kind:arm_call to:0x0202ea08 module:main
|
||||
from:0x020a9500 kind:arm_call to:0x0202ea08 module:main
|
||||
from:0x020a9524 kind:load to:0x020e57c0 module:overlay(0)
|
||||
from:0x020a9540 kind:load to:0x020e57c0 module:overlay(0)
|
||||
from:0x020a9524 kind:load to:0x020e57b8 add:8 module:overlay(0)
|
||||
from:0x020a9540 kind:load to:0x020e57b8 add:8 module:overlay(0)
|
||||
from:0x020a9552 kind:thumb_call_arm to:0x0202ea14 module:main
|
||||
from:0x020a9558 kind:thumb_call to:0x020b3e48 module:overlay(0)
|
||||
from:0x020a9560 kind:load to:0x020e57c0 module:overlay(0)
|
||||
from:0x020a9560 kind:load to:0x020e57b8 add:8 module:overlay(0)
|
||||
from:0x020a9572 kind:thumb_call_arm to:0x0202ea14 module:main
|
||||
from:0x020a9578 kind:thumb_call to:0x020b3e48 module:overlay(0)
|
||||
from:0x020a957e kind:thumb_call_arm to:0x0202ea08 module:main
|
||||
from:0x020a9588 kind:load to:0x020e57c0 module:overlay(0)
|
||||
from:0x020a9588 kind:load to:0x020e57b8 add:8 module:overlay(0)
|
||||
from:0x020a959a kind:thumb_call_arm to:0x0202ea14 module:main
|
||||
from:0x020a95a0 kind:thumb_call to:0x020b3e48 module:overlay(0)
|
||||
from:0x020a95a8 kind:load to:0x020e57c0 module:overlay(0)
|
||||
from:0x020a95a8 kind:load to:0x020e57b8 add:8 module:overlay(0)
|
||||
from:0x020a95c0 kind:load to:0x020189dc module:main
|
||||
from:0x020a9604 kind:arm_call to:0x020183b4 module:main
|
||||
from:0x020a9610 kind:arm_call to:0x020079d8 module:main
|
||||
|
||||
@@ -1992,26 +1992,26 @@ _ZN11ModelRenderD1Ev kind:function(thumb,size=0x20) addr:0x020a9544
|
||||
_ZN11ModelRenderD0Ev kind:function(thumb,size=0x28) addr:0x020a9564
|
||||
_ZN11ModelRenderD2Ev kind:function(thumb,size=0x20) addr:0x020a958c
|
||||
_ZN11ModelRender14GetLcdcAddressEv kind:function(arm,size=0x8) addr:0x020a95ac
|
||||
_ZN11ModelRender8vfunc_0cEP9ItemModel kind:function(arm,size=0x10) addr:0x020a95b4
|
||||
_ZN11ModelRender19func_ov000_020a9624Ei kind:function(arm,size=0x2c) addr:0x020a95c4
|
||||
_ZN11ModelRender28Init_ModelRender_UnkStruct_4EP9ItemModel kind:function(arm,size=0x10) addr:0x020a95b4
|
||||
_ZN11ModelRender16UnkGetBoneMatrixEi kind:function(arm,size=0x2c) addr:0x020a95c4
|
||||
_ZN11ModelRender12SetTransformEP5Vec3pP5Mat3pS1_ kind:function(arm,size=0x84) addr:0x020a95f0
|
||||
_ZN11ModelRender22SetRotationTranslationEP5Mat3pP5Vec3p kind:function(arm,size=0x6c) addr:0x020a9674
|
||||
_ZN11ModelRender14SetTranslationEP5Vec3p kind:function(arm,size=0x24) addr:0x020a96e0
|
||||
_ZN11ModelRender20PushGeometryCommandsEv kind:function(arm,size=0x6c) addr:0x020a9704
|
||||
_ZN11ModelRender8vfunc_20Ev kind:function(arm,size=0x10) addr:0x020a9770
|
||||
_ZN11ModelRender18ExecRenderCommandsEv kind:function(arm,size=0x10) addr:0x020a9770
|
||||
_ZN11ModelRender8vfunc_24EP24UnkStruct_ov000_020c0c08 kind:function(arm,size=0x18) addr:0x020a9780
|
||||
_ZN11ModelRender8vfunc_28Ev kind:function(arm,size=0x6c) addr:0x020a9798
|
||||
_ZN11ModelRender8vfunc_2cEv kind:function(arm,size=0x2c) addr:0x020a9804
|
||||
_ZN11ModelRender8vfunc_34Ev kind:function(arm,size=0x2c) addr:0x020a9830
|
||||
_ZN11ModelRender8vfunc_30Ev kind:function(arm,size=0x2c) addr:0x020a985c
|
||||
_ZN11ModelRender19func_ov000_020a98e8Ei kind:function(arm,size=0x24) addr:0x020a9888
|
||||
_ZN11ModelRender19func_ov000_020a990cEi kind:function(arm,size=0x2c) addr:0x020a98ac
|
||||
_ZN11ModelRender19func_ov000_020a9938Ei kind:function(thumb,size=0x28) addr:0x020a98d8
|
||||
_ZN11ModelRender19func_ov000_020a9960EPv kind:function(arm,size=0x8) addr:0x020a9900
|
||||
_ZN11ModelRender14GetObjectIndexEPc kind:function(arm,size=0x24) addr:0x020a9888
|
||||
_ZN11ModelRender16GetMaterialIndexEPc kind:function(arm,size=0x2c) addr:0x020a98ac
|
||||
_ZN11ModelRender20InitBoneMatrixArraysEj kind:function(thumb,size=0x28) addr:0x020a98d8
|
||||
_ZN11ModelRender22SetUnkBoneMatrixArray1EP31ModelRender_UnkBoneMatrixStruct kind:function(arm,size=0x8) addr:0x020a9900
|
||||
_ZN11ModelRender8vfunc_38Ev kind:function(arm,size=0x2c) addr:0x020a9908
|
||||
_ZN11ModelRender8vfunc_3cEv kind:function(arm,size=0x4) addr:0x020a9934
|
||||
_ZN11ModelRender19func_ov000_020a9998Eii kind:function(arm,size=0x28) addr:0x020a9938
|
||||
_ZN11ModelRender19func_ov000_020a99c0Ev kind:function(arm,size=0x20) addr:0x020a9960
|
||||
_ZN11ModelRender8vfunc_3cEP23ModelRenderCommandsData kind:function(arm,size=0x4) addr:0x020a9934
|
||||
_ZN11ModelRender22UnkInit_Struct4_ParamsEhh kind:function(arm,size=0x28) addr:0x020a9938
|
||||
_Z19func_ov000_020a99c0P23ModelRenderCommandsData kind:function(arm,size=0x20) addr:0x020a9960
|
||||
func_ov000_020a99e0 kind:function(thumb,size=0x40) addr:0x020a9980
|
||||
func_ov000_020a9a20 kind:function(thumb,size=0x20) addr:0x020a99c0
|
||||
func_ov000_020a9a40 kind:function(thumb,size=0x28) addr:0x020a99e0
|
||||
@@ -2289,7 +2289,7 @@ _ZN17LinkStateCutscene8vfunc_38Ev kind:function(arm,size=0x94) addr:0x020b3d84
|
||||
_ZN24UnkStruct_ov004_0210abb8D1Ev kind:function(arm,size=0x1c) addr:0x020b3e18
|
||||
_ZN24UnkStruct_ov004_0210abb8D0Ev kind:function(arm,size=0x14) addr:0x020b3e34
|
||||
func_ov000_020b3ea8 kind:function(thumb,size=0x2) addr:0x020b3e48
|
||||
func_ov000_020b3eac kind:function(arm,size=0x18) addr:0x020b3e4c
|
||||
GetModelUnknownHeader kind:function(arm,size=0x18) addr:0x020b3e4c
|
||||
func_ov000_020b3ec4 kind:function(arm,size=0x24) addr:0x020b3e64
|
||||
func_ov000_020b3ee8 kind:function(arm,size=0x3c) addr:0x020b3e88
|
||||
func_ov000_020b3f24 kind:function(arm,size=0x54) addr:0x020b3ec4
|
||||
@@ -4797,7 +4797,8 @@ data_ov000_020e5778 kind:data(any) addr:0x020e5718
|
||||
_ZTV15LinkStateFollow kind:data(any) addr:0x020e5744
|
||||
data_ov000_020e57f0 kind:data(any) addr:0x020e5790
|
||||
data_ov000_020e5808 kind:data(any) addr:0x020e57a8
|
||||
data_ov000_020e5820 kind:data(any) addr:0x020e57c0
|
||||
_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
|
||||
data_ov000_020e58e8 kind:data(any) addr:0x020e5888
|
||||
|
||||
@@ -802,7 +802,7 @@ func_02018ae8 kind:function(arm,size=0x68) addr:0x02018ae8
|
||||
func_02018b50 kind:function(arm,size=0x78) addr:0x02018b50
|
||||
func_02018bc8 kind:function(arm,size=0x74) addr:0x02018bc8
|
||||
func_02018c3c kind:function(arm,size=0x54) addr:0x02018c3c
|
||||
func_02018c90 kind:function(arm,size=0x14) addr:0x02018c90
|
||||
UnkInit_ModelRender_Struct4_Params kind:function(arm,size=0x14) addr:0x02018c90
|
||||
func_02018ca4 kind:function(arm,size=0x14) addr:0x02018ca4
|
||||
func_02018cb8 kind:function(arm,size=0x8) addr:0x02018cb8
|
||||
func_02018cc0 kind:function(arm,size=0xc) addr:0x02018cc0
|
||||
@@ -847,7 +847,7 @@ func_0201987c kind:function(arm,size=0x40) addr:0x0201987c
|
||||
func_020198bc kind:function(arm,size=0x48) addr:0x020198bc
|
||||
func_02019904 kind:function(arm,size=0x17c) addr:0x02019904
|
||||
func_02019a80 kind:function(arm,size=0x68) addr:0x02019a80
|
||||
func_02019ae8 kind:function(arm,size=0xdc) addr:0x02019ae8
|
||||
ExecModelRenderCommands kind:function(arm,size=0xdc) addr:0x02019ae8
|
||||
func_02019bc4 kind:function(arm,size=0x28) addr:0x02019bc4
|
||||
func_02019bec kind:function(arm,size=0x28) addr:0x02019bec
|
||||
func_02019c14 kind:function(arm,size=0x308) addr:0x02019c14
|
||||
|
||||
@@ -45,9 +45,7 @@ public:
|
||||
/* 344 */ q20 mUnk_344;
|
||||
/* 348 */ unk32 mUnk_348;
|
||||
/* 34c */ ActorNaviBase_Unk1 mUnk_34c[4];
|
||||
/* 35c */ unk8 mUnk_35c[0x28];
|
||||
/* 384 */ Mat3p mUnk_384;
|
||||
/* 3a8 */ unk8 mUnk_3a8[0xC];
|
||||
/* 35c */ ModelRender_UnkBoneMatrixStruct unkBoneMatrixStruct;
|
||||
/* 3b4 */ EquipHammer *mHammer;
|
||||
/* 3b8 */ UnkStruct_02057200 mUnk_3b8;
|
||||
/* 3c0 */ u8 mUnk_3c0;
|
||||
|
||||
@@ -8,46 +8,76 @@
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Unknown/UnkStruct_ov000_020c0c08.hpp"
|
||||
|
||||
class ModelRender;
|
||||
|
||||
struct ModelRender_UnkBoneMatrixStruct {
|
||||
/* 00 */ unk8 mUnk_00[0x28];
|
||||
/* 28 */ Mat3p mUnk_28;
|
||||
/* 4c */ unk8 mUnk_4c[0xC];
|
||||
/* 58 */
|
||||
};
|
||||
|
||||
struct ModelRender_UnkStruct_4 {
|
||||
/* 00 */ unk32 flags;
|
||||
/* 04 */ void *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
|
||||
/* 14 */ void *mUnkMaterialFunc;
|
||||
/* 18 */ void *mUnk_18; // also related to UnkStruct_ov000_020c0c08
|
||||
/* 1c */ void *mUnkVisibilityFunc;
|
||||
/* 20 */ void *mUnkFunc_20;
|
||||
/* 24 */ unk8 mUnk_24;
|
||||
/* 25 */ unk8 mUnk_25;
|
||||
/* 26 */ unk8 mUnk_26[2];
|
||||
/* 28 */ void *mUnk_28;
|
||||
/* 2c */ ModelRender *mUnk_2c; // pointer to self?
|
||||
/* 30 */ unk32 mUnk_30;
|
||||
/* 34 */ ModelRender_UnkBoneMatrixStruct *unkBoneMatrixArray1;
|
||||
/* 38 */ unk32 mUnk_38[3];
|
||||
/* 44 */ unk32 mUnk_44[2];
|
||||
/* 4c */ unk32 mUnk_4c[2];
|
||||
/* 54 */
|
||||
};
|
||||
|
||||
struct ModelRenderCommandsData {
|
||||
/* 00 */ u8 command;
|
||||
/* 04 */ ModelRender_UnkStruct_4 *unkStruct4;
|
||||
/* 08 */
|
||||
};
|
||||
|
||||
class ItemModel;
|
||||
|
||||
class ModelRender : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ u32 mUnk_04;
|
||||
/* 08 */ void *mLcdcAddr;
|
||||
/* 0c */ s32 mUnk_0c;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ s32 mUnk_14;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1c */ s32 mUnk_1c;
|
||||
/* 20 */ unk8 mUnk_20[0x38];
|
||||
/* 58 */ void *mUnk_58;
|
||||
/* 04 */ ModelRender_UnkStruct_4 mUnk_04;
|
||||
/* 58 */ ModelRender_UnkBoneMatrixStruct *unkBoneMatrixArray2;
|
||||
/* 5c */
|
||||
|
||||
/* 00 */ virtual ~ModelRender();
|
||||
/* 08 */ virtual void *GetLcdcAddress();
|
||||
/* 0c */ virtual void vfunc_0c(ItemModel *model);
|
||||
/* 0c */ virtual void Init_ModelRender_UnkStruct_4(ItemModel *model);
|
||||
/* 10 */ virtual void SetTransform(Vec3p *scale, Mat3p *rotation, Vec3p *translation);
|
||||
/* 14 */ virtual void SetRotationTranslation(Mat3p *rotation, Vec3p *translation);
|
||||
/* 18 */ virtual void SetTranslation(Vec3p *translation);
|
||||
/* 1c */ virtual void PushGeometryCommands();
|
||||
/* 20 */ virtual void vfunc_20();
|
||||
/* 20 */ virtual void ExecRenderCommands(); // Reads the NSBMD Render Commands and push instructions to the FIFO
|
||||
/* 24 */ virtual void vfunc_24(UnkStruct_ov000_020c0c08 *param1);
|
||||
/* 28 */ virtual void vfunc_28();
|
||||
/* 2c */ virtual void vfunc_2c();
|
||||
/* 30 */ virtual void vfunc_30();
|
||||
/* 34 */ virtual void vfunc_34();
|
||||
/* 38 */ virtual void vfunc_38();
|
||||
/* 3c */ virtual void vfunc_3c();
|
||||
/* 3c */ virtual void vfunc_3c(ModelRenderCommandsData *renderData);
|
||||
/* 40 */
|
||||
|
||||
ModelRender(ItemModel *param1);
|
||||
void *func_ov000_020a9624(s32 param1);
|
||||
void func_ov000_020a98e8(unk32 param1);
|
||||
void func_ov000_020a990c(unk32 param1);
|
||||
void func_ov000_020a9938(unk32 param1);
|
||||
void func_ov000_020a9960(void *param1);
|
||||
void func_ov000_020a9998(unk32 param1, unk32 param2);
|
||||
void func_ov000_020a99c0();
|
||||
ModelRender(ItemModel *itemModel);
|
||||
ModelRender_UnkBoneMatrixStruct *UnkGetBoneMatrix(s32 index);
|
||||
s32 GetObjectIndex(char *objectName);
|
||||
s32 GetMaterialIndex(char *materialName);
|
||||
void InitBoneMatrixArrays(u32 idLength);
|
||||
void SetUnkBoneMatrixArray1(ModelRender_UnkBoneMatrixStruct *boneMatrix);
|
||||
void UnkInit_Struct4_Params(u8 param1, u8 param2);
|
||||
void func_ov000_020b413c(unk16 param1, Vec3p *param2);
|
||||
};
|
||||
|
||||
@@ -556,7 +556,7 @@ THUMB void ItemManager::LoadFanfareItem(ItemId id) {
|
||||
strcat(textureName, sSpecialItemModelNames[6]);
|
||||
model = LoadNsbTexturedModel(mFanfareItemModel, modelName, textureName, 0, 0, 0, true);
|
||||
}
|
||||
mUnk_114->vfunc_0c(model);
|
||||
mUnk_114->Init_ModelRender_UnkStruct_4(model);
|
||||
}
|
||||
|
||||
THUMB bool ItemManager::GetFanfareItemScale(Vec3p *scale) const {
|
||||
|
||||
@@ -1,25 +1,174 @@
|
||||
#include "Render/ModelRender.hpp"
|
||||
#include "DTCM/UnkStruct_027e037c.hpp"
|
||||
|
||||
ModelRender::ModelRender(ItemModel *param1) {}
|
||||
ModelRender::~ModelRender() {}
|
||||
void *ModelRender::GetLcdcAddress() {}
|
||||
void ModelRender::vfunc_0c(ItemModel *model) {}
|
||||
void *ModelRender::func_ov000_020a9624(s32 param1) {}
|
||||
void ModelRender::SetTransform(Vec3p *scale, Mat3p *rotation, Vec3p *translation) {}
|
||||
void ModelRender::SetRotationTranslation(Mat3p *rotation, Vec3p *translation) {}
|
||||
void ModelRender::SetTranslation(Vec3p *translation) {}
|
||||
void ModelRender::PushGeometryCommands() {}
|
||||
void ModelRender::vfunc_20() {}
|
||||
void ModelRender::vfunc_24(UnkStruct_ov000_020c0c08 *param1) {}
|
||||
void ModelRender::vfunc_28() {}
|
||||
void ModelRender::vfunc_2c() {}
|
||||
void ModelRender::vfunc_34() {}
|
||||
void ModelRender::vfunc_30() {}
|
||||
void ModelRender::func_ov000_020a98e8(unk32 param1) {}
|
||||
void ModelRender::func_ov000_020a990c(unk32 param1) {}
|
||||
void ModelRender::func_ov000_020a9938(unk32 param1) {}
|
||||
void ModelRender::func_ov000_020a9960(void *param1) {}
|
||||
void ModelRender::vfunc_38() {}
|
||||
void ModelRender::vfunc_3c() {}
|
||||
void ModelRender::func_ov000_020a9998(unk32 param1, unk32 param2) {}
|
||||
void ModelRender::func_ov000_020a99c0() {}
|
||||
extern "C" void func_020189dc(ModelRender_UnkStruct_4 *unkStruct4, ItemModel *model);
|
||||
extern "C" void func_02018c3c(ModelRender_UnkStruct_4 *unkStruct4, void *param2);
|
||||
extern "C" void UnkInit_ModelRender_Struct4_Params(ModelRender_UnkStruct_4 *unkStruct4,
|
||||
void (*func)(ModelRenderCommandsData *), unk32 param3, u8 param4,
|
||||
u8 param5);
|
||||
extern "C" void ExecModelRenderCommands(ModelRender_UnkStruct_4 *unkStruct4);
|
||||
extern "C" void CopySingle288(Mat3p *src, Mat3p *dest);
|
||||
extern "C" void SetGeometryScale(Vec3p *scale);
|
||||
extern "C" void SetGeometryTranslation(Vec3p *translation);
|
||||
extern "C" void PushGeometryCommand(u32 command, void *data, s32 length);
|
||||
extern "C" void func_ov000_020c0d70(UnkStruct_ov000_020c0c08 *param1, ModelRender_UnkStruct_4 *param2);
|
||||
extern "C" void func_ov000_020b3ea8(void *param1);
|
||||
extern "C" unk32 func_0201e388(void *param1, const char *param2);
|
||||
extern "C" u8 *GetModelUnknownHeader(ModelRender *modelRender);
|
||||
extern "C" Mat3p gGeomMatrix;
|
||||
extern "C" Vec3p gGeomTranslation;
|
||||
extern "C" Vec3p gGeomScale;
|
||||
extern "C" UnkStruct_027e037c data_027e037c;
|
||||
extern "C" void *data_027e03c8;
|
||||
extern "C" Vec3p gDefaultScale;
|
||||
extern "C" Mat3p gDefaultMatrix;
|
||||
extern "C" u32 *data_027e0ce0[];
|
||||
|
||||
THUMB ModelRender::ModelRender(ItemModel *itemModel) {
|
||||
this->unkBoneMatrixArray2 = NULL;
|
||||
this->Init_ModelRender_UnkStruct_4(itemModel);
|
||||
}
|
||||
|
||||
THUMB ModelRender::~ModelRender() {
|
||||
if (this->unkBoneMatrixArray2 != NULL) {
|
||||
SysObject::operator delete[](this->unkBoneMatrixArray2);
|
||||
}
|
||||
func_ov000_020b3ea8(this);
|
||||
}
|
||||
|
||||
ARM void *ModelRender::GetLcdcAddress() {
|
||||
return mUnk_04.mLcdcAddr;
|
||||
}
|
||||
|
||||
void ModelRender::Init_ModelRender_UnkStruct_4(ItemModel *model) {
|
||||
func_020189dc(&this->mUnk_04, model);
|
||||
}
|
||||
|
||||
ModelRender_UnkBoneMatrixStruct *ModelRender::UnkGetBoneMatrix(s32 index) {
|
||||
if (this->unkBoneMatrixArray2 != NULL) {
|
||||
return &this->unkBoneMatrixArray2[index];
|
||||
}
|
||||
if (this->mUnk_04.unkBoneMatrixArray1 != NULL) {
|
||||
return &this->mUnk_04.unkBoneMatrixArray1[index];
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void ModelRender::SetTransform(Vec3p *scale, Mat3p *rotation, Vec3p *translation) {
|
||||
SetGeometryScale(scale);
|
||||
CopySingle288(rotation, &gGeomMatrix);
|
||||
data_027e037c.flags = data_027e037c.flags & 0xffffff5b;
|
||||
SetGeometryTranslation(translation);
|
||||
this->PushGeometryCommands();
|
||||
SetGeometryScale(&gDefaultScale);
|
||||
CopySingle288(&gDefaultMatrix, &gGeomMatrix);
|
||||
data_027e037c.flags = data_027e037c.flags & 0xffffff5b;
|
||||
}
|
||||
|
||||
void ModelRender::SetRotationTranslation(Mat3p *rotation, Vec3p *translation) {
|
||||
CopySingle288(rotation, &gGeomMatrix);
|
||||
data_027e037c.flags = data_027e037c.flags & 0xffffff5b;
|
||||
SetGeometryTranslation(translation);
|
||||
this->PushGeometryCommands();
|
||||
CopySingle288(&gDefaultMatrix, &gGeomMatrix);
|
||||
data_027e037c.flags = data_027e037c.flags & 0xffffff5b;
|
||||
}
|
||||
|
||||
void ModelRender::SetTranslation(Vec3p *translation) {
|
||||
SetGeometryTranslation(translation);
|
||||
this->PushGeometryCommands();
|
||||
}
|
||||
|
||||
void ModelRender::PushGeometryCommands() {
|
||||
PushGeometryCommand(0x1c, &gGeomTranslation.x, 3);
|
||||
PushGeometryCommand(0x1a, &gGeomMatrix, 9);
|
||||
PushGeometryCommand(0x1b, &gGeomScale.x, 3);
|
||||
this->ExecRenderCommands();
|
||||
PushGeometryCommand(0x17, &data_027e03c8, 0xc);
|
||||
}
|
||||
|
||||
void ModelRender::ExecRenderCommands() {
|
||||
ExecModelRenderCommands(&this->mUnk_04);
|
||||
}
|
||||
|
||||
void ModelRender::vfunc_24(UnkStruct_ov000_020c0c08 *param1) {
|
||||
func_ov000_020c0d70(param1, &this->mUnk_04);
|
||||
}
|
||||
|
||||
void ModelRender::vfunc_28() {
|
||||
while (this->mUnk_04.mUnk_10 != NULL) {
|
||||
func_02018c3c(&this->mUnk_04, this->mUnk_04.mUnk_10);
|
||||
}
|
||||
while (this->mUnk_04.mUnk_08 != NULL) {
|
||||
func_02018c3c(&this->mUnk_04, this->mUnk_04.mUnk_08);
|
||||
}
|
||||
while (this->mUnk_04.mUnk_18 != NULL) {
|
||||
func_02018c3c(&this->mUnk_04, this->mUnk_04.mUnk_18);
|
||||
}
|
||||
}
|
||||
|
||||
void ModelRender::vfunc_2c() {
|
||||
while (this->mUnk_04.mUnk_10 != NULL) {
|
||||
func_02018c3c(&this->mUnk_04, this->mUnk_04.mUnk_10);
|
||||
}
|
||||
}
|
||||
|
||||
void ModelRender::vfunc_34() {
|
||||
while (this->mUnk_04.mUnk_18 != NULL) {
|
||||
func_02018c3c(&this->mUnk_04, this->mUnk_04.mUnk_18);
|
||||
}
|
||||
}
|
||||
|
||||
void ModelRender::vfunc_30() {
|
||||
while (this->mUnk_04.mUnk_08 != NULL) {
|
||||
func_02018c3c(&this->mUnk_04, this->mUnk_04.mUnk_08);
|
||||
}
|
||||
}
|
||||
|
||||
// An object is a subdivision of a model e.g.: link's arm, link's head, etc.
|
||||
ARM s32 ModelRender::GetObjectIndex(char *objectName) {
|
||||
char *model = (char *) GetLcdcAddress();
|
||||
void *objectList = model + 0x40;
|
||||
unk32 index = func_0201e388(objectList, objectName);
|
||||
return index;
|
||||
}
|
||||
|
||||
ARM s32 ModelRender::GetMaterialIndex(char *materialName) {
|
||||
char *model = (char *) GetLcdcAddress();
|
||||
u32 materialsOffset = *(u32 *) ((u32) model + 8);
|
||||
void *materialList = (void *) ((u32) model + materialsOffset + 4);
|
||||
unk32 index = func_0201e388(materialList, materialName);
|
||||
return index;
|
||||
}
|
||||
|
||||
THUMB void ModelRender::InitBoneMatrixArrays(u32 idLength) {
|
||||
u32 *id = data_027e0ce0[1];
|
||||
u8 *unkPtr = GetModelUnknownHeader(this);
|
||||
u8 boneMatrixCount = *(unkPtr + 3);
|
||||
|
||||
ModelRender_UnkBoneMatrixStruct *boneMatrixArray =
|
||||
(ModelRender_UnkBoneMatrixStruct *) SysObject::operator new[](boneMatrixCount * 0x58, id, idLength);
|
||||
this->unkBoneMatrixArray2 = boneMatrixArray;
|
||||
this->mUnk_04.unkBoneMatrixArray1 = boneMatrixArray;
|
||||
}
|
||||
|
||||
ARM void ModelRender::SetUnkBoneMatrixArray1(ModelRender_UnkBoneMatrixStruct *boneMatrix) {
|
||||
this->mUnk_04.unkBoneMatrixArray1 = boneMatrix;
|
||||
}
|
||||
|
||||
void ModelRender::vfunc_38() {
|
||||
this->mUnk_04.flags |= 3;
|
||||
ExecModelRenderCommands(&this->mUnk_04);
|
||||
this->mUnk_04.flags &= 0xfffffffd;
|
||||
}
|
||||
|
||||
void ModelRender::vfunc_3c(ModelRenderCommandsData *renderData) {}
|
||||
|
||||
void func_ov000_020a99c0(ModelRenderCommandsData *renderData) {
|
||||
renderData->unkStruct4->mUnk_2c->vfunc_3c(renderData);
|
||||
}
|
||||
|
||||
void ModelRender::UnkInit_Struct4_Params(u8 param1, u8 param2) {
|
||||
this->mUnk_04.mUnk_2c = this;
|
||||
UnkInit_ModelRender_Struct4_Params(&this->mUnk_04, &func_ov000_020a99c0, 0, param1, param2);
|
||||
}
|
||||
@@ -50,7 +50,7 @@ THUMB bool ActorNaviBase::Init() {
|
||||
|
||||
ActorNaviBase_Unk3::ActorNaviBase_Unk3(ItemModel *param1) :
|
||||
ModelRender(param1) {
|
||||
this->func_ov000_020a9998(6, 3);
|
||||
this->UnkInit_Struct4_Params(6, 3);
|
||||
}
|
||||
|
||||
THUMB ActorNavi::ActorNavi() :
|
||||
@@ -69,7 +69,7 @@ extern const ItemManager_Unk1 data_ov000_020dc7d0;
|
||||
THUMB bool ActorNavi::Init() {
|
||||
mUnk_2f0.func_ov000_020c0c44(gItemManager->func_ov00_020ad538(&data_ov000_020dc7d0));
|
||||
mUnk_2f0.func_ov000_020c0e5c(0);
|
||||
mUnk_294.func_ov000_020a9960(&mUnk_35c);
|
||||
mUnk_294.SetUnkBoneMatrixArray1(&unkBoneMatrixStruct);
|
||||
mUnk_294.vfunc_24(&mUnk_2f0);
|
||||
mUnk_3c4 = ActorNaviBase::vfunc_c4();
|
||||
mUnk_3c6 = ActorNaviBase::vfunc_c8();
|
||||
|
||||
@@ -87,8 +87,8 @@ static const ItemManager_Unk1 sEquipBombchu_Unk1 = {
|
||||
};
|
||||
|
||||
THUMB void EquipBombchu::vfunc_00() {
|
||||
gModelRenderBombchu.vfunc_0c(gItemManager->GetItemModel(ItemModelId_Bombchu));
|
||||
gModelRenderBombchuPt.vfunc_0c(gItemManager->GetItemModel(ItemModelId_BombchuPt));
|
||||
gModelRenderBombchu.Init_ModelRender_UnkStruct_4(gItemManager->GetItemModel(ItemModelId_Bombchu));
|
||||
gModelRenderBombchuPt.Init_ModelRender_UnkStruct_4(gItemManager->GetItemModel(ItemModelId_BombchuPt));
|
||||
data_ov058_0219b0a0.mUnk_08 = gItemManager->GetItemModel(ItemModelId_BombchuPt);
|
||||
data_ov058_0219b0a0.func_ov000_020c0c44(gItemManager->func_ov00_020ad538(&sEquipBombchu_Unk1));
|
||||
data_ov058_0219b0a0.func_ov000_020c0e5c(0);
|
||||
|
||||
@@ -45,7 +45,7 @@ ARM void ActorNavi::func_ov059_0219aa08(bool param1) {
|
||||
this->mUnk_334.mUnk_00.x =
|
||||
ROUND_Q20(uVar4) | ((this->mUnk_344 >> 0x1F) * 0x666 + (lVar2 >> 0x20) + (~0x800 < uVar4)) * 0x100000;
|
||||
|
||||
Mat3p_MultiplyVec(&this->mUnk_334.mUnk_00, &this->mUnk_384, &this->mUnk_334.mUnk_00);
|
||||
Mat3p_MultiplyVec(&this->mUnk_334.mUnk_00, &this->unkBoneMatrixStruct.mUnk_28, &this->mUnk_334.mUnk_00);
|
||||
Vec3p_RotateY(uVar3, &this->mUnk_334.mUnk_00);
|
||||
Vec3p_Add(&this->mUnk_334.mUnk_00, &VStack_24, &this->mUnk_334.mUnk_00);
|
||||
VStack_60.z = this->mUnk_334.mUnk_00.z;
|
||||
|
||||
Reference in New Issue
Block a user