mirror of
https://github.com/zeldaret/ss
synced 2026-06-11 13:10:11 -04:00
Merge branch 'main' into treasure-island
This commit is contained in:
@@ -10,7 +10,7 @@ draw__16dAcOfenceBoko2_cFv = .text:0x00000320; // type:function size:0x28
|
||||
__dt__16dAcOfenceBoko2_cFv = .text:0x00000350; // type:function size:0x74
|
||||
_ctors = .ctors:0x00000000; // type:label scope:global
|
||||
_dtors = .dtors:0x00000000; // type:label scope:global
|
||||
lbl_371_rodata_0 = .rodata:0x00000000; // type:object size:0x1C data:float
|
||||
lbl_371_rodata_0 = .rodata:0x00000000; // type:object size:0x1C scope:local data:float
|
||||
g_profile_OBJ_FENCE_BOKO2 = .data:0x00000000; // type:object size:0x10
|
||||
lbl_370_data_10 = .data:0x00000010; // type:object size:0xB scope:local data:string
|
||||
lbl_370_data_1C = .data:0x0000001C; // type:object size:0x13 scope:local data:string
|
||||
|
||||
@@ -10,7 +10,7 @@ draw__17dAcOfenceKonsai_cFv = .text:0x000002C0; // type:function size:0x28
|
||||
__dt__17dAcOfenceKonsai_cFv = .text:0x000002F0; // type:function size:0x74
|
||||
_ctors = .ctors:0x00000000; // type:label scope:global
|
||||
_dtors = .dtors:0x00000000; // type:label scope:global
|
||||
lbl_381_rodata_0 = .rodata:0x00000000; // type:object size:0x18 data:float
|
||||
lbl_381_rodata_0 = .rodata:0x00000000; // type:object size:0x18 scope:local data:float
|
||||
g_profile_OBJ_FENCE_KONSAI = .data:0x00000000; // type:object size:0x44
|
||||
lbl_381_data_44 = .data:0x00000044; // type:object size:0x24
|
||||
lbl_381_data_44 = .data:0x00000044; // type:object size:0x24 scope:local
|
||||
__vt__17dAcOfenceKonsai_c = .data:0x00000068; // type:object size:0x80
|
||||
|
||||
@@ -10,8 +10,8 @@ draw__17dAcOshrineAfter_cFv = .text:0x00000240; // type:function size:0x28
|
||||
__dt__17dAcOshrineAfter_cFv = .text:0x00000270; // type:function size:0x68
|
||||
_ctors = .ctors:0x00000000; // type:label scope:global
|
||||
_dtors = .dtors:0x00000000; // type:label scope:global
|
||||
lbl_387_rodata_0 = .rodata:0x00000000; // type:object size:0x18 data:float
|
||||
lbl_387_rodata_0 = .rodata:0x00000000; // type:object size:0x18 scope:local data:float
|
||||
g_profile_OBJ_SHRINE_AFTER = .data:0x00000000; // type:object size:0x10
|
||||
lbl_387_data_10 = .data:0x00000010; // type:object size:0x10
|
||||
lbl_387_data_20 = .data:0x00000020; // type:object size:0x20
|
||||
lbl_387_data_10 = .data:0x00000010; // type:object size:0x10 scope:local
|
||||
lbl_387_data_20 = .data:0x00000020; // type:object size:0x20 scope:local
|
||||
__vt__17dAcOshrineAfter_c = .data:0x00000040; // type:object size:0x80
|
||||
|
||||
@@ -10,8 +10,8 @@ draw__18dAcOshrineBefore_cFv = .text:0x00000250; // type:function size:0x28
|
||||
__dt__18dAcOshrineBefore_cFv = .text:0x00000280; // type:function size:0x68
|
||||
_ctors = .ctors:0x00000000; // type:label scope:global
|
||||
_dtors = .dtors:0x00000000; // type:label scope:global
|
||||
lbl_388_rodata_0 = .rodata:0x00000000; // type:object size:0x1C data:float
|
||||
lbl_388_rodata_0 = .rodata:0x00000000; // type:object size:0x1C scope:local data:float
|
||||
g_profile_OBJ_SHRINE_BEFORE = .data:0x00000000; // type:object size:0x10
|
||||
lbl_388_data_10 = .data:0x00000010; // type:object size:0x10
|
||||
lbl_388_data_20 = .data:0x00000020; // type:object size:0x20 data:string
|
||||
lbl_388_data_10 = .data:0x00000010; // type:object size:0x10 scope:local
|
||||
lbl_388_data_20 = .data:0x00000020; // type:object size:0x20 scope:local data:string
|
||||
__vt__18dAcOshrineBefore_c = .data:0x00000040; // type:object size:0x80
|
||||
|
||||
+60
-60
@@ -1085,7 +1085,7 @@ FUN_8002d810__9dAcBase_cFv = .text:0x8002D810; // type:function size:0x20
|
||||
FUN_8002d830__9dAcBase_cFv = .text:0x8002D830; // type:function size:0x28
|
||||
FUN_8002d860__9dAcBase_cFv = .text:0x8002D860; // type:function size:0x20
|
||||
getSoundSource__9dAcBase_cFv = .text:0x8002D880; // type:function size:0x8
|
||||
FUN_8002d890__9dAcBase_cFv = .text:0x8002D890; // type:function size:0x88
|
||||
FUN_8002d890__9dAcBase_cFP9SoundInfo = .text:0x8002D890; // type:function size:0x88
|
||||
setActorRef__9dAcBase_cFP9dAcBase_c = .text:0x8002D920; // type:function size:0x8
|
||||
setEnemyDefeatFlag__9dAcBase_cFv = .text:0x8002D930; // type:function size:0x10
|
||||
changeLoadedEntitiesWithSet__9dAcBase_cFv = .text:0x8002D940; // type:function size:0x14
|
||||
@@ -17679,7 +17679,7 @@ destroy__Q23m3d9mShadow_cFv = .text:0x802ED2D0; // type:function size:0x60
|
||||
__dt__Q23m3d14mShadowChild_cFv = .text:0x802ED330; // type:function size:0x9C
|
||||
create__Q23m3d14mShadowChild_cFUcPQ23EGG4Heap = .text:0x802ED3D0; // type:function size:0x7C
|
||||
set__Q23m3d14mShadowChild_cFRC7mVec3_cf6mColor = .text:0x802ED450; // type:function size:0x40
|
||||
addMdl__Q23m3d14mShadowChild_cFRQ23m3d9scnLeaf_cR7mQuat_c = .text:0x802ED490; // type:function size:0x16C
|
||||
addMdl__Q23m3d14mShadowChild_cFRQ23m3d9scnLeaf_cRC7mQuat_c = .text:0x802ED490; // type:function size:0x16C
|
||||
setGeom__Q23m3d14mShadowChild_cFPC9_GXTexObjRC6mMtx_cRC7mQuat_c = .text:0x802ED600; // type:function size:0xF8
|
||||
updateMtx__Q23m3d14mShadowChild_cFv = .text:0x802ED700; // type:function size:0x148
|
||||
drawMdl__Q23m3d14mShadowChild_cFv = .text:0x802ED850; // type:function size:0x24C
|
||||
@@ -17688,7 +17688,7 @@ __dt__Q23m3d15mShadowCircle_cFv = .text:0x802EDBB0; // type:function size:0x68
|
||||
__dt__Q23m3d15mCustomShadow_cFv = .text:0x802EDC20; // type:function size:0x58
|
||||
getType__Q23m3d15mCustomShadow_cCFv = .text:0x802EDC80; // type:function size:0x8
|
||||
draw__Q23m3d15mCustomShadow_cFRC6mMtx_c = .text:0x802EDC90; // type:function size:0x17C
|
||||
calc__Q23m3d15mCustomShadow_cF6mMtx_cR6mMtx_c = .text:0x802EDE10; // type:function size:0x10C
|
||||
calc__Q23m3d15mCustomShadow_cCF6mMtx_cR6mMtx_c = .text:0x802EDE10; // type:function size:0x10C
|
||||
__sinit_\m_shadow_cpp = .text:0x802EDF20; // type:function size:0xC scope:local
|
||||
__ct__Q23m3d6smdl_cFv = .text:0x802EDF30; // type:function size:0x4C
|
||||
__dt__Q23m3d6smdl_cFv = .text:0x802EDF80; // type:function size:0x58
|
||||
@@ -17811,7 +17811,7 @@ fadeIn__12mFaderBase_cFv = .text:0x802F0740; // type:function size:0x28
|
||||
fadeOut__12mFaderBase_cFv = .text:0x802F0770; // type:function size:0x2C
|
||||
calc__12mFaderBase_cFv = .text:0x802F07A0; // type:function size:0x7C
|
||||
mFrustum_c__set = .text:0x802F0820; // type:function size:0xB8
|
||||
mFrustum_c__set2 = .text:0x802F08E0; // type:function size:0x370
|
||||
set__10mFrustum_cFffffffRC6mMtx_cb = .text:0x802F08E0; // type:function size:0x370
|
||||
fn_802F0C50 = .text:0x802F0C50; // type:function size:0x160
|
||||
fn_802F0DB0 = .text:0x802F0DB0; // type:function size:0x8
|
||||
fn_802F0DC0 = .text:0x802F0DC0; // type:function size:0x13C
|
||||
@@ -31326,35 +31326,35 @@ lbl_8051442C = .data:0x8051442C; // type:object size:0x3E4
|
||||
__vt__34sFStateID_c<19dLytMeterSmallKey_c> = .data:0x80514810; // type:object size:0x34
|
||||
__vt__33sFStateID_c<18dLytMeterBossKey_c> = .data:0x80514844; // type:object size:0x34
|
||||
__vt__35sFStateID_c<20dLytMeterKakeraKey_c> = .data:0x80514878; // type:object size:0x34
|
||||
lbl_805148B0 = .data:0x805148B0; // type:object size:0xC
|
||||
lbl_805148BC = .data:0x805148BC; // type:object size:0xC
|
||||
lbl_805148C8 = .data:0x805148C8; // type:object size:0xC
|
||||
lbl_805148B0 = .data:0x805148B0; // type:object size:0xB data:string
|
||||
lbl_805148BC = .data:0x805148BC; // type:object size:0xB data:string
|
||||
lbl_805148C8 = .data:0x805148C8; // type:object size:0xB data:string
|
||||
lbl_805148D4 = .data:0x805148D4; // type:object size:0xC data:4byte
|
||||
lbl_805148E0 = .data:0x805148E0; // type:object size:0x18
|
||||
lbl_805148F8 = .data:0x805148F8; // type:object size:0x10
|
||||
lbl_80514908 = .data:0x80514908; // type:object size:0x14
|
||||
lbl_8051491C = .data:0x8051491C; // type:object size:0xC
|
||||
lbl_80514928 = .data:0x80514928; // type:object size:0xC
|
||||
lbl_80514934 = .data:0x80514934; // type:object size:0xC
|
||||
lbl_80514940 = .data:0x80514940; // type:object size:0x18
|
||||
lbl_80514958 = .data:0x80514958; // type:object size:0xC
|
||||
lbl_80514964 = .data:0x80514964; // type:object size:0xC
|
||||
lbl_80514970 = .data:0x80514970; // type:object size:0xC
|
||||
lbl_805148E0 = .data:0x805148E0; // type:object size:0x16 data:string
|
||||
lbl_805148F8 = .data:0x805148F8; // type:object size:0xF data:string
|
||||
lbl_80514908 = .data:0x80514908; // type:object size:0x12 data:string
|
||||
lbl_8051491C = .data:0x8051491C; // type:object size:0xB data:string
|
||||
lbl_80514928 = .data:0x80514928; // type:object size:0xB data:string
|
||||
lbl_80514934 = .data:0x80514934; // type:object size:0xB data:string
|
||||
lbl_80514940 = .data:0x80514940; // type:object size:0x15 data:string
|
||||
lbl_80514958 = .data:0x80514958; // type:object size:0xB data:string
|
||||
lbl_80514964 = .data:0x80514964; // type:object size:0xB data:string
|
||||
lbl_80514970 = .data:0x80514970; // type:object size:0xB data:string
|
||||
lbl_8051497C = .data:0x8051497C; // type:object size:0x14 data:string
|
||||
lbl_80514990 = .data:0x80514990; // type:object size:0xC
|
||||
lbl_8051499C = .data:0x8051499C; // type:object size:0xC
|
||||
lbl_805149A8 = .data:0x805149A8; // type:object size:0xC
|
||||
lbl_805149B4 = .data:0x805149B4; // type:object size:0x18
|
||||
lbl_805149CC = .data:0x805149CC; // type:object size:0x10
|
||||
lbl_805149DC = .data:0x805149DC; // type:object size:0x10
|
||||
lbl_805149EC = .data:0x805149EC; // type:object size:0x10
|
||||
lbl_80514990 = .data:0x80514990; // type:object size:0xA data:string
|
||||
lbl_8051499C = .data:0x8051499C; // type:object size:0xA data:string
|
||||
lbl_805149A8 = .data:0x805149A8; // type:object size:0xA data:string
|
||||
lbl_805149B4 = .data:0x805149B4; // type:object size:0x17 data:string
|
||||
lbl_805149CC = .data:0x805149CC; // type:object size:0xD data:string
|
||||
lbl_805149DC = .data:0x805149DC; // type:object size:0xD data:string
|
||||
lbl_805149EC = .data:0x805149EC; // type:object size:0xD data:string
|
||||
lbl_805149FC = .data:0x805149FC; // type:object size:0x14 data:string
|
||||
lbl_80514A10 = .data:0x80514A10; // type:object size:0xC
|
||||
lbl_80514A1C = .data:0x80514A1C; // type:object size:0xC
|
||||
lbl_80514A28 = .data:0x80514A28; // type:object size:0xC
|
||||
lbl_80514A34 = .data:0x80514A34; // type:object size:0x14
|
||||
lbl_80514A48 = .data:0x80514A48; // type:object size:0x18
|
||||
lbl_80514A60 = .data:0x80514A60; // type:object size:0x294
|
||||
lbl_80514A10 = .data:0x80514A10; // type:object size:0xA data:string
|
||||
lbl_80514A1C = .data:0x80514A1C; // type:object size:0xA data:string
|
||||
lbl_80514A28 = .data:0x80514A28; // type:object size:0xA data:string
|
||||
lbl_80514A34 = .data:0x80514A34; // type:object size:0x13 data:string
|
||||
lbl_80514A48 = .data:0x80514A48; // type:object size:0x17 data:string
|
||||
lbl_80514A60 = .data:0x80514A60; // type:object size:0xF data:string
|
||||
__vt__31sFStateID_c<16dLytMeterDrink_c> = .data:0x80514CF4; // type:object size:0x34
|
||||
__vt__36sFStateID_c<21dLytMeterDrinkParts_c> = .data:0x80514D28; // type:object size:0x34
|
||||
lbl_80514D60 = .data:0x80514D60; // type:object size:0x10
|
||||
@@ -32744,17 +32744,17 @@ __vt__35sFStateID_c<20dLytMapFloorBtnMgr_c> = .data:0x80522518; // type:object s
|
||||
__vt__32sFStateID_c<17dLytMapFloorBtn_c> = .data:0x8052254C; // type:object size:0x34
|
||||
__vt__40sFStateID_c<25dLytMapPinIconAggregate_c> = .data:0x80522580; // type:object size:0x34
|
||||
__vt__31sFStateID_c<16dLytMapPinIcon_c> = .data:0x805225B4; // type:object size:0x34
|
||||
lbl_805225E8 = .data:0x805225E8; // type:object size:0x20
|
||||
lbl_80522608 = .data:0x80522608; // type:object size:0xC
|
||||
lbl_80522614 = .data:0x80522614; // type:object size:0x24
|
||||
lbl_80522638 = .data:0x80522638; // type:object size:0x24
|
||||
lbl_8052265C = .data:0x8052265C; // type:object size:0x20
|
||||
lbl_8052267C = .data:0x8052267C; // type:object size:0x20
|
||||
lbl_8052269C = .data:0x8052269C; // type:object size:0x20
|
||||
lbl_805226BC = .data:0x805226BC; // type:object size:0xC
|
||||
lbl_805226C8 = .data:0x805226C8; // type:object size:0x10
|
||||
lbl_805226D8 = .data:0x805226D8; // type:object size:0x110
|
||||
lbl_805227E8 = .data:0x805227E8; // type:object size:0x38
|
||||
lbl_805225E8 = .data:0x805225E8; // type:object size:0x1D data:string
|
||||
lbl_80522608 = .data:0x80522608; // type:object size:0xA data:string
|
||||
lbl_80522614 = .data:0x80522614; // type:object size:0x21 data:string
|
||||
lbl_80522638 = .data:0x80522638; // type:object size:0x22 data:string
|
||||
lbl_8052265C = .data:0x8052265C; // type:object size:0x1E data:string
|
||||
lbl_8052267C = .data:0x8052267C; // type:object size:0x1D data:string
|
||||
lbl_8052269C = .data:0x8052269C; // type:object size:0x1F data:string
|
||||
lbl_805226BC = .data:0x805226BC; // type:object size:0xB data:string
|
||||
lbl_805226C8 = .data:0x805226C8; // type:object size:0xE data:string
|
||||
lbl_805226D8 = .data:0x805226D8; // type:object size:0x15 data:string
|
||||
__vt__25sFStateID_c<10dLytNote_c> = .data:0x805227E8; // type:object size:0x34
|
||||
@7519 = .data:0x80522820; // type:object size:0x13 scope:local data:string
|
||||
...data.0 = .data:0x80522820; // type:label scope:local
|
||||
@7520 = .data:0x80522834; // type:object size:0xB scope:local data:string
|
||||
@@ -34195,13 +34195,13 @@ __vt__18sFPhase<8dStage_c> = .data:0x8052E058; // type:object size:0x24
|
||||
g_profile_STAGE_SELECT = .data:0x8052E080; // type:object size:0xC
|
||||
AcStageSelect__vtable = .data:0x8052E08C; // type:object size:0x4C
|
||||
g_profile_ROOM = .data:0x8052E0D8; // type:object size:0xC
|
||||
lbl_8052E11C = .data:0x8052E11C; // type:object size:0x10
|
||||
lbl_8052E12C = .data:0x8052E12C; // type:object size:0x10
|
||||
lbl_8052E13C = .data:0x8052E13C; // type:object size:0x10
|
||||
lbl_8052E14C = .data:0x8052E14C; // type:object size:0x10
|
||||
lbl_8052E15C = .data:0x8052E15C; // type:object size:0xC
|
||||
lbl_8052E168 = .data:0x8052E168; // type:object size:0xC
|
||||
lbl_8052E174 = .data:0x8052E174; // type:object size:0x14
|
||||
lbl_8052E11C = .data:0x8052E11C; // type:object size:0xD data:string
|
||||
lbl_8052E12C = .data:0x8052E12C; // type:object size:0xD data:string
|
||||
lbl_8052E13C = .data:0x8052E13C; // type:object size:0xF data:string
|
||||
lbl_8052E14C = .data:0x8052E14C; // type:object size:0xF data:string
|
||||
lbl_8052E15C = .data:0x8052E15C; // type:object size:0xB data:string
|
||||
lbl_8052E168 = .data:0x8052E168; // type:object size:0x9 data:string
|
||||
lbl_8052E174 = .data:0x8052E174; // type:object size:0x12 data:string
|
||||
__vt__7dRoom_c = .data:0x8052E188; // type:object size:0x4C
|
||||
__vt__Q27dRoom_c12UnkRoomClass = .data:0x8052E1D4; // type:object size:0xC
|
||||
__vt__45sFStateMgr_c<7dRoom_c,20sStateMethodUsr_FI_c> = .data:0x8052E1E0; // type:object size:0x30
|
||||
@@ -38289,7 +38289,7 @@ lbl_80572848 = .sdata:0x80572848; // type:object size:0x8
|
||||
lbl_80572850 = .sdata:0x80572850; // type:object size:0x4
|
||||
lbl_80572854 = .sdata:0x80572854; // type:object size:0x8
|
||||
lbl_8057285C = .sdata:0x8057285C; // type:object size:0xC
|
||||
lbl_80572868 = .sdata:0x80572868; // type:object size:0x8 data:4byte
|
||||
lbl_80572868 = .sdata:0x80572868; // type:object size:0x4 data:4byte
|
||||
@8144 = .sdata:0x80572870; // type:object size:0x1 scope:local data:string
|
||||
lbl_80572878 = .sdata:0x80572878; // type:object size:0x4
|
||||
lbl_8057287C = .sdata:0x8057287C; // type:object size:0x4
|
||||
@@ -38660,16 +38660,16 @@ lbl_805732D8 = .sdata:0x805732D8; // type:object size:0x8
|
||||
lbl_805732E0 = .sdata:0x805732E0; // type:object size:0x8
|
||||
lbl_805732E8 = .sdata:0x805732E8; // type:object size:0x8
|
||||
lbl_805732F0 = .sdata:0x805732F0; // type:object size:0x8 data:4byte
|
||||
lbl_805732F8 = .sdata:0x805732F8; // type:object size:0x8
|
||||
lbl_80573300 = .sdata:0x80573300; // type:object size:0x8
|
||||
lbl_80573308 = .sdata:0x80573308; // type:object size:0x8
|
||||
lbl_80573310 = .sdata:0x80573310; // type:object size:0x8
|
||||
lbl_80573318 = .sdata:0x80573318; // type:object size:0x8
|
||||
lbl_80573320 = .sdata:0x80573320; // type:object size:0x8
|
||||
lbl_80573328 = .sdata:0x80573328; // type:object size:0x8
|
||||
lbl_80573330 = .sdata:0x80573330; // type:object size:0x8
|
||||
lbl_805732F8 = .sdata:0x805732F8; // type:object size:0x5 data:string
|
||||
lbl_80573300 = .sdata:0x80573300; // type:object size:0x5 data:string
|
||||
lbl_80573308 = .sdata:0x80573308; // type:object size:0x5 data:string
|
||||
lbl_80573310 = .sdata:0x80573310; // type:object size:0x7 data:string
|
||||
lbl_80573318 = .sdata:0x80573318; // type:object size:0x5 data:string
|
||||
lbl_80573320 = .sdata:0x80573320; // type:object size:0x5 data:string
|
||||
lbl_80573328 = .sdata:0x80573328; // type:object size:0x6 data:string
|
||||
lbl_80573330 = .sdata:0x80573330; // type:object size:0x7 data:string
|
||||
lbl_80573338 = .sdata:0x80573338; // type:object size:0x8 data:string
|
||||
lbl_80573340 = .sdata:0x80573340; // type:object size:0x8
|
||||
lbl_80573340 = .sdata:0x80573340; // type:object size:0x3 data:string
|
||||
lbl_80573348 = .sdata:0x80573348; // type:object size:0x8
|
||||
lbl_80573350 = .sdata:0x80573350; // type:object size:0x8
|
||||
lbl_80573358 = .sdata:0x80573358; // type:object size:0x8
|
||||
@@ -48963,7 +48963,7 @@ StateID_EventSaveObjSelect__13dLytMapMain_c = .bss:0x805B0740; // type:object si
|
||||
StateID_EventSaveObjConfirmMsgWindow__13dLytMapMain_c = .bss:0x805B0780; // type:object size:0x30 data:4byte
|
||||
StateID_EventSaveObjDecide__13dLytMapMain_c = .bss:0x805B07C0; // type:object size:0x30 data:4byte
|
||||
lbl_805B07F0 = .bss:0x805B07F0; // type:object size:0x40
|
||||
lbl_805B0830 = .bss:0x805B0830; // type:object size:0x10
|
||||
lbl_805B0830 = .bss:0x805B0830; // type:object size:0xC
|
||||
StateID_Wait__10dLytNote_c = .bss:0x805B0840; // type:object size:0x30 data:4byte
|
||||
StateID_In__10dLytNote_c = .bss:0x805B0880; // type:object size:0x30 data:4byte
|
||||
StateID_Move__10dLytNote_c = .bss:0x805B08C0; // type:object size:0x30 data:4byte
|
||||
@@ -49135,7 +49135,7 @@ STRING_SPACE = .bss:0x805B29E0; // type:object size:0x800
|
||||
lbl_805B31E0 = .bss:0x805B31E0; // type:object size:0x400
|
||||
MSBT_NAME_IN_ARC = .bss:0x805B35E0; // type:object size:0x80 data:byte
|
||||
lbl_805B3660 = .bss:0x805B3660; // type:object size:0x80 data:byte
|
||||
lbl_805B36E0 = .bss:0x805B36E0; // type:object size:0x10
|
||||
lbl_805B36E0 = .bss:0x805B36E0; // type:object size:0xC
|
||||
StateID_Active__7dRoom_c = .bss:0x805B36F0; // type:object size:0x30 data:4byte
|
||||
StateID_NonActive__7dRoom_c = .bss:0x805B3730; // type:object size:0x30 data:4byte
|
||||
lbl_805B3760 = .bss:0x805B3760; // type:object size:0xC
|
||||
|
||||
+1
-1
@@ -432,7 +432,7 @@ config.libs = [
|
||||
Object(NonMatching, "d/d_stage_mgr.cpp"),
|
||||
Object(NonMatching, "d/d_last.cpp"),
|
||||
Object(NonMatching, "d/d_stage.cpp"),
|
||||
Object(NonMatching, "d/d_room.cpp"),
|
||||
Object(Matching, "d/d_room.cpp"),
|
||||
Object(NonMatching, "d/d_cs_base.cpp"),
|
||||
Object(NonMatching, "d/d_cs_game.cpp"),
|
||||
Object(Matching, "d/d_sc_title.cpp"),
|
||||
|
||||
@@ -99,7 +99,6 @@ public:
|
||||
mBpntCount(0),
|
||||
mAreaCount(0),
|
||||
mFlags(0) {}
|
||||
virtual ~dRoom_c() {}
|
||||
|
||||
virtual int create() override;
|
||||
virtual int doDelete() override;
|
||||
|
||||
@@ -66,6 +66,26 @@ public:
|
||||
field_0x154 = arg;
|
||||
}
|
||||
|
||||
const mQuat_c &GetQuat() const {
|
||||
return mQuat;
|
||||
}
|
||||
const mVec3_c &GetPostion() const {
|
||||
return mPositionMaybe;
|
||||
}
|
||||
const f32 GetOffset() const {
|
||||
return mOffsetMaybe;
|
||||
}
|
||||
const f32 Get0x13C() const {
|
||||
return field_0x13C;
|
||||
}
|
||||
void Set0x13C(const f32 f) {
|
||||
field_0x13C = f;
|
||||
}
|
||||
|
||||
const mFrustum_c &GetFrustum() const {
|
||||
return mFrustum;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x00C */ EGG::Heap *mpHeap;
|
||||
/* 0x010 */ mShadowCircle_c *mpCircle;
|
||||
@@ -189,7 +209,7 @@ public:
|
||||
virtual int getType() const override;
|
||||
/* 0x24 */ virtual void draw(const mMtx_c &);
|
||||
|
||||
void calc(mMtx_c, mMtx_c &);
|
||||
void calc(mMtx_c, mMtx_c &) const;
|
||||
|
||||
/* 0x18 */ mMtx_c mMtx;
|
||||
/* 0x48 */ f32 field_0x48;
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "common.h"
|
||||
#include "egg/math/eggMatrix.h"
|
||||
#include "m/m_angle.h"
|
||||
#include "m/m_quat.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/types_nw4r.h"
|
||||
#include "rvl/MTX/mtx.h"
|
||||
@@ -82,6 +83,10 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void applyQuat(mQuat_c &quat) {
|
||||
PSMTXMultVec(m, quat.v, quat.v);
|
||||
}
|
||||
|
||||
public:
|
||||
static mMtx_c Identity;
|
||||
};
|
||||
|
||||
@@ -8,12 +8,20 @@ class mQuat_c : public EGG::Quatf {
|
||||
public:
|
||||
mQuat_c() {}
|
||||
mQuat_c(f32 x, f32 y, f32 z, f32 w) : EGG::Quatf(w, x, y, z) {}
|
||||
mQuat_c(const mQuat_c &other) : EGG::Quatf(other.w, other.v) {}
|
||||
|
||||
mQuat_c &operator=(const EGG::Quatf &rhs) {
|
||||
v = rhs.v;
|
||||
w = rhs.w;
|
||||
return *this;
|
||||
}
|
||||
|
||||
mQuat_c &operator=(const mQuat_c &rhs) {
|
||||
v = rhs.v;
|
||||
w = rhs.w;
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool Set(const mVec3_c &, const mVec3_c &);
|
||||
void fn_802F2780(const mQuat_c &other);
|
||||
bool fn_802F2450(const mVec3_c &, const mVec3_c &, f32);
|
||||
|
||||
@@ -12,14 +12,24 @@ public:
|
||||
/* 0x0C */ UNKWORD field_0x0C;
|
||||
};
|
||||
|
||||
class UnkWithWater {
|
||||
class UnkWithWaterBase {
|
||||
public:
|
||||
UnkWithWaterBase() : field_0x04(0), field_0x08(0) {}
|
||||
virtual void calc() = 0;
|
||||
|
||||
private:
|
||||
/* 0x04 */ UNKWORD field_0x04;
|
||||
/* 0x08 */ UNKWORD field_0x08;
|
||||
};
|
||||
|
||||
class UnkWithWater : public UnkWithWaterBase {
|
||||
public:
|
||||
typedef TList<UnkWithWaterNode, offsetof(UnkWithWaterNode, mNode)> NodeList;
|
||||
|
||||
UnkWithWater() : field_0x04(0), field_0x08(0) {}
|
||||
UnkWithWater() {}
|
||||
virtual ~UnkWithWater() {
|
||||
remove();
|
||||
}
|
||||
virtual void calc() override;
|
||||
|
||||
static bool linkMdl(nw4r::g3d::ResMdl &mdl, UnkWithWater *thing);
|
||||
bool hasLinks() const {
|
||||
@@ -29,8 +39,6 @@ public:
|
||||
private:
|
||||
void remove();
|
||||
|
||||
/* 0x04 */ UNKWORD field_0x04;
|
||||
/* 0x08 */ UNKWORD field_0x08;
|
||||
/* 0x0C */ NodeList mList;
|
||||
};
|
||||
|
||||
|
||||
+43
-27
@@ -1,5 +1,9 @@
|
||||
#include "m/m3d/m_shadow.h"
|
||||
|
||||
#include "c/c_math.h"
|
||||
#include "m/m_mtx.h"
|
||||
#include "m/m_quat.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/g3d/g3d_calcview.h"
|
||||
#include "nw4r/g3d/g3d_draw.h"
|
||||
#include "nw4r/g3d/g3d_draw1mat1shp.h"
|
||||
@@ -486,9 +490,8 @@ bool mShadowChild_c::addMdl(scnLeaf_c &mdl, const mQuat_c &quat) {
|
||||
mtx.copyFrom(static_cast<mCustomShadow_c &>(mdl).mMtx);
|
||||
}
|
||||
|
||||
// TODO this copy is a bit weird (reads members in a different order)
|
||||
mQuat_c q = quat;
|
||||
PSMTXMultVec(mtx.m, q.v, q.v);
|
||||
mtx.applyQuat(q);
|
||||
|
||||
if (mNumLeaves == 0) {
|
||||
mQuat = q;
|
||||
@@ -511,20 +514,34 @@ bool mShadowChild_c::setGeom(const GXTexObj *texObj, const mMtx_c &mtx, const mQ
|
||||
}
|
||||
|
||||
void mShadowChild_c::updateMtx() {
|
||||
// TODO all of this is broken
|
||||
mVec3_c a = *(mVec3_c *)(&mQuat) + mPositionMaybe * mOffsetMaybe;
|
||||
mVec3_c b = *(mVec3_c *)(&mQuat) - mPositionMaybe * field_0x13C;
|
||||
const mQuat_c &q = GetQuat();
|
||||
const mVec3_c &pos = GetPostion();
|
||||
|
||||
Set0x13C(q.w);
|
||||
|
||||
mVec3_c a(q.v);
|
||||
|
||||
a += pos * GetOffset();
|
||||
|
||||
mVec3_c b(q.v);
|
||||
b -= pos * Get0x13C();
|
||||
|
||||
const mVec3_c *up;
|
||||
if (cM::isZero((a - b).squareMagXZ())) {
|
||||
up = &mVec3_c::Ez;
|
||||
} else {
|
||||
up = &mVec3_c::Ey;
|
||||
}
|
||||
|
||||
mMtx_c mtx;
|
||||
C_MTXLookAt(
|
||||
mtx.m, b,
|
||||
*(fabsf((a.x - b.x) * (a.x - b.x) + (a.z - b.z) * (a.z - b.z)) <= FLT_EPSILON ? &mVec3_c::Ez : &mVec3_c::Ey), a
|
||||
);
|
||||
f32 f = field_0x13C;
|
||||
mFrustum.set(f, -f, -f, f, f, f + mOffsetMaybe, mtx, true);
|
||||
C_MTXLookAt(mtx.m, a, *up, b);
|
||||
|
||||
const f32 f = Get0x13C();
|
||||
mFrustum.set(f, -f, -f, f, f, f + GetOffset(), mtx, true);
|
||||
}
|
||||
|
||||
void mShadowChild_c::drawMdl() {
|
||||
// TODO maybe roughly equivalent
|
||||
// Equivalent, but stack problems and regswaps
|
||||
using namespace nw4r;
|
||||
mMtx_c mtx;
|
||||
GXSetTevColor(GX_TEVREG0, sColors[mColorChanIdx]);
|
||||
@@ -532,33 +549,35 @@ void mShadowChild_c::drawMdl() {
|
||||
GXSetProjection(mtx.m, GX_ORTHOGRAPHIC);
|
||||
g3d::G3DState::Invalidate(0x7FF);
|
||||
|
||||
mMtx_c &viewMtx = mFrustum.mView;
|
||||
|
||||
for (scnLeaf_c **leaf = &mpLeaves[mNumLeaves - 1]; leaf >= &mpLeaves[0]; leaf--) {
|
||||
scnLeaf_c *lf = *leaf;
|
||||
if (lf->getType() == 0 /* Model */) {
|
||||
g3d::ScnMdlSimple *mdl = g3d::G3dObj::DynamicCast<g3d::ScnMdlSimple>(lf->getG3dObject());
|
||||
if ((*leaf)->getType() == 0 /* Model */) {
|
||||
g3d::ScnMdlSimple *mdl = g3d::G3dObj::DynamicCast<g3d::ScnMdlSimple>((*leaf)->getG3dObject());
|
||||
|
||||
u32 bufSize = mdl->GetNumViewMtx() * sizeof(math::MTX34);
|
||||
math::MTX34 *viewPosArray = static_cast<math::MTX34 *>(mShadow_c::GetInstance()->mpHeap->alloc(bufSize, 0x20));
|
||||
math::MTX34 *viewPosArray =
|
||||
static_cast<math::MTX34 *>(mShadow_c::GetInstance()->mpCurrentHeap->alloc(bufSize, 0x20));
|
||||
|
||||
g3d::ResMdl resMdl = mdl->GetResMdl();
|
||||
g3d::CalcView(
|
||||
viewPosArray, nullptr, mdl->GetWldMtxArray(), mdl->GetWldMtxAttribArray(), mdl->GetNumViewMtx(),
|
||||
mFrustum.mView, mdl->GetResMdl(), nullptr
|
||||
viewMtx, resMdl, nullptr
|
||||
);
|
||||
DCStoreRange(viewPosArray, bufSize);
|
||||
|
||||
g3d::ScnMdl *mdl2 = g3d::G3dObj::DynamicCast<g3d::ScnMdl>(lf->getG3dObject());
|
||||
g3d::ScnMdl *mdl2 = g3d::G3dObj::DynamicCast<g3d::ScnMdl>((*leaf)->getG3dObject());
|
||||
|
||||
g3d::DrawResMdlReplacement *pRep = mdl2 ? &mdl2->GetDrawResMdlReplacement() : nullptr;
|
||||
|
||||
g3d::DrawResMdlDirectly(
|
||||
mdl->GetResMdl(), viewPosArray, nullptr, nullptr,
|
||||
mdl2->GetByteCode(g3d::ScnMdlSimple::BYTE_CODE_DRAW_OPA), nullptr, pRep,
|
||||
g3d::RESMDL_DRAWMODE_FORCE_LIGHTOFF | g3d::RESMDL_DRAWMODE_IGNORE_MATERIAL
|
||||
resMdl, viewPosArray, nullptr, nullptr, mdl2->GetByteCode(g3d::ScnMdlSimple::BYTE_CODE_DRAW_OPA),
|
||||
nullptr, pRep, g3d::RESMDL_DRAWMODE_FORCE_LIGHTOFF | g3d::RESMDL_DRAWMODE_IGNORE_MATERIAL
|
||||
);
|
||||
GXInvalidateVtxCache();
|
||||
} else {
|
||||
// this happens with bomb bag, and goes to 0x802EDC90 (mCustomShadow_c::draw)
|
||||
static_cast<mCustomShadow_c *>(lf)->draw(mFrustum.mView);
|
||||
static_cast<mCustomShadow_c *>(*leaf)->draw(viewMtx);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -609,13 +628,10 @@ void mCustomShadow_c::draw(const mMtx_c &arg) {
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0);
|
||||
}
|
||||
|
||||
void mCustomShadow_c::calc(mMtx_c mtx, mMtx_c &mtx2) {
|
||||
// TODO some shuffles
|
||||
|
||||
void mCustomShadow_c::calc(mMtx_c mtx, mMtx_c &mtx2) const {
|
||||
mVec3_c trans;
|
||||
mtx2.copyFrom(mMtx);
|
||||
mVec3_c offset(0.0f, 0.0f, 0.0f);
|
||||
offset.y = field_0x48;
|
||||
mVec3_c offset(0.0f, field_0x48, 0.0f);
|
||||
PSMTXMultVec(mtx2, offset, trans);
|
||||
PSMTXMultVec(mtx, trans, trans);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user