mirror of
https://github.com/zeldaret/ss
synced 2026-06-11 05:08:16 -04:00
Merge pull request #293 from robojumper/some-cam-stuff
Some camera stuff
This commit is contained in:
@@ -410,21 +410,35 @@ toBeSorted/d_enemy_sword_mdl.cpp:
|
||||
.data start:0x8050E060 end:0x8050E090
|
||||
.sdata2 start:0x80579230 end:0x80579238
|
||||
|
||||
toBeSorted/d_camera.cpp:
|
||||
.text start:0x8006BBE0 end:0x80083370 align:16
|
||||
.ctors start:0x804DB6AC end:0x804DB6B0
|
||||
.sbss start:0x80575290 end:0x80575370
|
||||
toBeSorted/d_camera_base.cpp:
|
||||
.text start:0x8006BBE0 end:0x8006BE20 align:16
|
||||
|
||||
toBeSorted/d_event_1.cpp:
|
||||
toBeSorted/d_camera_game.cpp:
|
||||
.text start:0x8006BE20 end:0x80083370 align:16
|
||||
.ctors start:0x804DB6AC end:0x804DB6B0
|
||||
.data start:0x8050E090 end:0x8050EA18
|
||||
.sdata start:0x80571D70 end:0x80571ED8
|
||||
.sbss start:0x80575290 end:0x80575370
|
||||
.sdata2 start:0x80579238 end:0x80579418
|
||||
.bss start:0x805A08C8 end:0x805A1660
|
||||
|
||||
toBeSorted/d_camera_event.cpp:
|
||||
.text start:0x80083370 end:0x800928F0 align:16
|
||||
.ctors start:0x804DB6B0 end:0x804DB6B4
|
||||
.data start:0x8050EA18 end:0x8050F180
|
||||
.sdata2 start:0x80579418 end:0x80579538
|
||||
.bss start:0x805A1660 end:0x805A2F18
|
||||
|
||||
toBeSorted/unk_map_cam.cpp:
|
||||
toBeSorted/d_camera_map.cpp:
|
||||
.text start:0x800928F0 end:0x8009345C align:16
|
||||
.ctors start:0x804DB6B4 end:0x804DB6B8
|
||||
.data start:0x8050F180 end:0x8050F1C8
|
||||
.sdata2 start:0x80579538 end:0x805795A0
|
||||
.bss start:0x805A2F18 end:0x805A2F58
|
||||
|
||||
toBeSorted/unk_vec_math_event.cpp:
|
||||
toBeSorted/d_camera_math.cpp:
|
||||
.text start:0x80093460 end:0x80093A74 align:16
|
||||
.sdata2 start:0x805795A0 end:0x80579600
|
||||
|
||||
toBeSorted/attention.cpp:
|
||||
.text start:0x80093A80 end:0x80096EAC align:16
|
||||
@@ -1353,7 +1367,10 @@ d/d_camera.cpp:
|
||||
.text start:0x8019D160 end:0x8019ED0C align:16
|
||||
.ctors start:0x804DB800 end:0x804DB804
|
||||
.data start:0x8052C180 end:0x8052C230
|
||||
.sdata start:0x80572EA0 end:0x80572EB8
|
||||
.sbss start:0x80575708 end:0x80575710
|
||||
.sdata2 start:0x8057AF50 end:0x8057AFA8
|
||||
.bss start:0x805B27A0 end:0x805B27D8
|
||||
|
||||
d/d_light_obj.cpp:
|
||||
.text start:0x8019ED10 end:0x801A65C8 align:16
|
||||
|
||||
+309
-280
@@ -3063,113 +3063,113 @@ fn_8006B810 = .text:0x8006B810; // type:function size:0x5C
|
||||
fn_8006B870 = .text:0x8006B870; // type:function size:0x10
|
||||
calc__16dEnemySwordMdl_cFRC6mMtx_cRC7mVec3_cb = .text:0x8006B880; // type:function size:0x2A8
|
||||
entry__16dEnemySwordMdl_cFP12dAcObjBase_cP15dShadowCircle_cP7mQuat_c = .text:0x8006BB30; // type:function size:0xA4
|
||||
fn_8006BBE0 = .text:0x8006BBE0; // type:function size:0x70
|
||||
fn_8006BC50 = .text:0x8006BC50; // type:function size:0x18
|
||||
fn_8006BC70 = .text:0x8006BC70; // type:function size:0xA8
|
||||
fn_8006BD20 = .text:0x8006BD20; // type:function size:0x4
|
||||
fn_8006BD30 = .text:0x8006BD30; // type:function size:0x24
|
||||
fn_8006BD60 = .text:0x8006BD60; // type:function size:0x44
|
||||
fn_8006BDB0 = .text:0x8006BDB0; // type:function size:0xC
|
||||
fn_8006BDC0 = .text:0x8006BDC0; // type:function size:0xC
|
||||
fn_8006BDD0 = .text:0x8006BDD0; // type:function size:0x8
|
||||
fn_8006BDE0 = .text:0x8006BDE0; // type:function size:0x40
|
||||
fn_8006BE20 = .text:0x8006BE20; // type:function size:0x40
|
||||
doCreate__13dCameraBase_cFl = .text:0x8006BBE0; // type:function size:0x70
|
||||
doRemove__13dCameraBase_cFv = .text:0x8006BC50; // type:function size:0x18
|
||||
doExecute__13dCameraBase_cFv = .text:0x8006BC70; // type:function size:0xA8
|
||||
onBecomeActive__13dCameraBase_cFv = .text:0x8006BD20; // type:function size:0x4 scope:weak
|
||||
doDraw__13dCameraBase_cFv = .text:0x8006BD30; // type:function size:0x24
|
||||
setView__13dCameraBase_cFRC7CamView = .text:0x8006BD60; // type:function size:0x44 scope:weak
|
||||
deactivate__13dCameraBase_cFv = .text:0x8006BDB0; // type:function size:0xC scope:weak
|
||||
activate__13dCameraBase_cFv = .text:0x8006BDC0; // type:function size:0xC scope:weak
|
||||
getView__13dCameraBase_cFv = .text:0x8006BDD0; // type:function size:0x8 scope:weak
|
||||
__dt__7CamViewFv = .text:0x8006BDE0; // type:function size:0x40 scope:weak
|
||||
__dt__17dCameraGame_HIO_cFv = .text:0x8006BE20; // type:function size:0x40
|
||||
debugNotif = .text:0x8006BE60; // type:function size:0x50
|
||||
debugPrintf4 = .text:0x8006BEB0; // type:function size:0x50
|
||||
debugPrintf4__FPCce = .text:0x8006BEB0; // type:function size:0x50
|
||||
debugPrintf6 = .text:0x8006BF00; // type:function size:0x50
|
||||
fn_8006BF50 = .text:0x8006BF50; // type:function size:0x4
|
||||
fn_8006BF60 = .text:0x8006BF60; // type:function size:0x8
|
||||
GetCameraDatTrendIndex = .text:0x8006BF70; // type:function size:0xF0
|
||||
getCurrentRoomId = .text:0x8006C060; // type:function size:0x10
|
||||
fn_8006C070 = .text:0x8006C070; // type:function size:0x5C
|
||||
fn_8006C0D0 = .text:0x8006C0D0; // type:function size:0x10
|
||||
fn_8006C0E0 = .text:0x8006C0E0; // type:function size:0x28
|
||||
GetCameraDatStyleIdx = .text:0x8006C110; // type:function size:0x48
|
||||
SetCameraParamTrendIndexes = .text:0x8006C160; // type:function size:0x208
|
||||
initCameraParamData = .text:0x8006C370; // type:function size:0xEC
|
||||
getTrendIndex__13dCameraGame_cFPCc = .text:0x8006BF70; // type:function size:0xF0
|
||||
getCurrentRoomId__Fv = .text:0x8006C060; // type:function size:0x10
|
||||
getCam__Fll = .text:0x8006C070; // type:function size:0x5C
|
||||
getCam__FRC5CamId = .text:0x8006C0D0; // type:function size:0x10
|
||||
getCamTrend__FRC5CamId = .text:0x8006C0E0; // type:function size:0x28
|
||||
getStyleIndex__13dCameraGame_cFUl = .text:0x8006C110; // type:function size:0x48
|
||||
cacheIdxes__13dCameraGame_cFv = .text:0x8006C160; // type:function size:0x208
|
||||
initCamParamDat__13dCameraGame_cFv = .text:0x8006C370; // type:function size:0xEC
|
||||
fn_8006C460 = .text:0x8006C460; // type:function size:0x6DC
|
||||
fn_8006CB40 = .text:0x8006CB40; // type:function size:0x9C
|
||||
fn_8006CBE0 = .text:0x8006CBE0; // type:function size:0x8
|
||||
fn_8006CBF0 = .text:0x8006CBF0; // type:function size:0x78
|
||||
fn_8006CC70 = .text:0x8006CC70; // type:function size:0x10
|
||||
fn_8006CC80 = .text:0x8006CC80; // type:function size:0x8
|
||||
doInit__17GameCameraHandlerFP13dCameraGame_cUsi = .text:0x8006CB40; // type:function size:0x9C
|
||||
init__17GameCameraHandlerFv = .text:0x8006CBE0; // type:function size:0x8
|
||||
doExecute__17GameCameraHandlerFv = .text:0x8006CBF0; // type:function size:0x78
|
||||
vt_0x0C__17GameCameraHandlerFv = .text:0x8006CC70; // type:function size:0x10
|
||||
vt_0x10__17GameCameraHandlerFv = .text:0x8006CC80; // type:function size:0x8
|
||||
fn_8006CC90 = .text:0x8006CC90; // type:function size:0x48
|
||||
fn_8006CCE0 = .text:0x8006CCE0; // type:function size:0x164
|
||||
searchForBossActor = .text:0x8006CE50; // type:function size:0xD8
|
||||
fn_8006CF30 = .text:0x8006CF30; // type:function size:0x2F4
|
||||
fn_8006D230 = .text:0x8006D230; // type:function size:0x1618
|
||||
init__19GameCameraHandler03Fv = .text:0x8006CF30; // type:function size:0x2F4
|
||||
vt_0x10__19GameCameraHandler03Fv = .text:0x8006D230; // type:function size:0x1618
|
||||
fn_8006E850 = .text:0x8006E850; // type:function size:0x130
|
||||
fn_8006E980 = .text:0x8006E980; // type:function size:0x108
|
||||
fn_8006EA90 = .text:0x8006EA90; // type:function size:0x294
|
||||
fn_8006ED30 = .text:0x8006ED30; // type:function size:0x2F8
|
||||
fn_8006F030 = .text:0x8006F030; // type:function size:0x814
|
||||
fn_8006F850 = .text:0x8006F850; // type:function size:0x1F04
|
||||
fn_80071760 = .text:0x80071760; // type:function size:0x340
|
||||
fn_80071AA0 = .text:0x80071AA0; // type:function size:0x198
|
||||
fn_80071C40 = .text:0x80071C40; // type:function size:0x10F4
|
||||
init__19GameCameraHandler01Fv = .text:0x8006ED30; // type:function size:0x2F8
|
||||
vt_0x0C__19GameCameraHandler01Fv = .text:0x8006F030; // type:function size:0x814
|
||||
vt_0x10__19GameCameraHandler01Fv = .text:0x8006F850; // type:function size:0x1F04
|
||||
init__19GameCameraHandler02Fv = .text:0x80071760; // type:function size:0x340
|
||||
vt_0x0C__19GameCameraHandler02Fv = .text:0x80071AA0; // type:function size:0x198
|
||||
vt_0x10__19GameCameraHandler02Fv = .text:0x80071C40; // type:function size:0x10F4
|
||||
fn_80072D40 = .text:0x80072D40; // type:function size:0x4E8
|
||||
fn_80073230 = .text:0x80073230; // type:function size:0x414
|
||||
fn_80073650 = .text:0x80073650; // type:function size:0x384
|
||||
fn_800739E0 = .text:0x800739E0; // type:function size:0x1F0
|
||||
fn_80073BD0 = .text:0x80073BD0; // type:function size:0x760
|
||||
fn_80074330 = .text:0x80074330; // type:function size:0x698
|
||||
fn_800749D0 = .text:0x800749D0; // type:function size:0x748
|
||||
init__19GameCameraHandler04Fv = .text:0x80073650; // type:function size:0x384
|
||||
vt_0x10__19GameCameraHandler04Fv = .text:0x800739E0; // type:function size:0x1F0
|
||||
init__19GameCameraHandler05Fv = .text:0x80073BD0; // type:function size:0x760
|
||||
vt_0x0C__19GameCameraHandler05Fv = .text:0x80074330; // type:function size:0x698
|
||||
vt_0x10__19GameCameraHandler05Fv = .text:0x800749D0; // type:function size:0x748
|
||||
fn_80075120 = .text:0x80075120; // type:function size:0x14
|
||||
fn_80075140 = .text:0x80075140; // type:function size:0x14
|
||||
fn_80075160 = .text:0x80075160; // type:function size:0x78
|
||||
fn_800751E0 = .text:0x800751E0; // type:function size:0x3C4
|
||||
fn_800755B0 = .text:0x800755B0; // type:function size:0xAE8
|
||||
fn_800760A0 = .text:0x800760A0; // type:function size:0x1BD4
|
||||
fn_80077C80 = .text:0x80077C80; // type:function size:0x2EC
|
||||
fn_80077F70 = .text:0x80077F70; // type:function size:0x2D0
|
||||
fn_80078240 = .text:0x80078240; // type:function size:0x2F4
|
||||
fn_80078540 = .text:0x80078540; // type:function size:0x13C
|
||||
fn_80078680 = .text:0x80078680; // type:function size:0x2E4
|
||||
fn_80078970 = .text:0x80078970; // type:function size:0x954
|
||||
init__19GameCameraHandler06Fv = .text:0x800751E0; // type:function size:0x3C4
|
||||
vt_0x0C__19GameCameraHandler06Fv = .text:0x800755B0; // type:function size:0xAE8
|
||||
vt_0x10__19GameCameraHandler06Fv = .text:0x800760A0; // type:function size:0x1BD4
|
||||
init__19GameCameraHandler07Fv = .text:0x80077C80; // type:function size:0x2EC
|
||||
vt_0x0C__19GameCameraHandler07Fv = .text:0x80077F70; // type:function size:0x2D0
|
||||
vt_0x10__19GameCameraHandler07Fv = .text:0x80078240; // type:function size:0x2F4
|
||||
init__19GameCameraHandler08Fv = .text:0x80078540; // type:function size:0x13C
|
||||
vt_0x0C__19GameCameraHandler08Fv = .text:0x80078680; // type:function size:0x2E4
|
||||
vt_0x10__19GameCameraHandler08Fv = .text:0x80078970; // type:function size:0x954
|
||||
fn_800792D0 = .text:0x800792D0; // type:function size:0x254
|
||||
fn_80079530 = .text:0x80079530; // type:function size:0x28C
|
||||
fn_800797C0 = .text:0x800797C0; // type:function size:0x56C
|
||||
fn_80079D30 = .text:0x80079D30; // type:function size:0x1128
|
||||
fn_8007AE60 = .text:0x8007AE60; // type:function size:0x34
|
||||
fn_8007AEA0 = .text:0x8007AEA0; // type:function size:0x8
|
||||
fn_8007AEB0 = .text:0x8007AEB0; // type:function size:0x10
|
||||
init__19GameCameraHandler09Fv = .text:0x80079530; // type:function size:0x28C
|
||||
vt_0x0C__19GameCameraHandler09Fv = .text:0x800797C0; // type:function size:0x56C
|
||||
vt_0x10__19GameCameraHandler09Fv = .text:0x80079D30; // type:function size:0x1128
|
||||
init__19GameCameraHandler10Fv = .text:0x8007AE60; // type:function size:0x34
|
||||
vt_0x0C__19GameCameraHandler10Fv = .text:0x8007AEA0; // type:function size:0x8
|
||||
vt_0x10__19GameCameraHandler10Fv = .text:0x8007AEB0; // type:function size:0x10
|
||||
fn_8007AEC0 = .text:0x8007AEC0; // type:function size:0xFC
|
||||
fn_8007AFC0 = .text:0x8007AFC0; // type:function size:0x2E8
|
||||
fn_8007B2B0 = .text:0x8007B2B0; // type:function size:0x684
|
||||
fn_8007B940 = .text:0x8007B940; // type:function size:0x17CC
|
||||
fn_8007D110 = .text:0x8007D110; // type:function size:0xAC
|
||||
fn_8007D1C0 = .text:0x8007D1C0; // type:function size:0xADC
|
||||
fn_8007DCA0 = .text:0x8007DCA0; // type:function size:0xE8
|
||||
fn_8007DD90 = .text:0x8007DD90; // type:function size:0x10
|
||||
fn_8007DDA0 = .text:0x8007DDA0; // type:function size:0x30
|
||||
fn_8007DDD0 = .text:0x8007DDD0; // type:function size:0x33C
|
||||
fn_8007E110 = .text:0x8007E110; // type:function size:0x4
|
||||
fn_8007E120 = .text:0x8007E120; // type:function size:0x4
|
||||
fn_8007E130 = .text:0x8007E130; // type:function size:0x7C
|
||||
fn_8007E1B0 = .text:0x8007E1B0; // type:function size:0x51C
|
||||
fn_8007E6D0 = .text:0x8007E6D0; // type:function size:0x1CC
|
||||
fn_8007E8A0 = .text:0x8007E8A0; // type:function size:0x230
|
||||
fn_8007EAD0 = .text:0x8007EAD0; // type:function size:0x75C
|
||||
fn_8007F230 = .text:0x8007F230; // type:function size:0x94
|
||||
fn_8007F2D0 = .text:0x8007F2D0; // type:function size:0x38
|
||||
fn_8007F310 = .text:0x8007F310; // type:function size:0x1EC
|
||||
fn_8007F500 = .text:0x8007F500; // type:function size:0xF4
|
||||
fn_8007F600 = .text:0x8007F600; // type:function size:0x34
|
||||
fn_8007F640 = .text:0x8007F640; // type:function size:0x70
|
||||
fn_8007F6B0 = .text:0x8007F6B0; // type:function size:0x130
|
||||
fn_8007F7E0 = .text:0x8007F7E0; // type:function size:0x384
|
||||
fn_8007FB70 = .text:0x8007FB70; // type:function size:0x168
|
||||
fn_8007FCE0 = .text:0x8007FCE0; // type:function size:0x128
|
||||
fn_8007FE10 = .text:0x8007FE10; // type:function size:0x268
|
||||
init__19GameCameraHandler11Fv = .text:0x8007AFC0; // type:function size:0x2E8
|
||||
vt_0x0C__19GameCameraHandler11Fv = .text:0x8007B2B0; // type:function size:0x684
|
||||
vt_0x10__19GameCameraHandler11Fv = .text:0x8007B940; // type:function size:0x17CC
|
||||
init__19GameCameraHandler12Fv = .text:0x8007D110; // type:function size:0xAC
|
||||
vt_0x10__19GameCameraHandler12Fv = .text:0x8007D1C0; // type:function size:0xADC
|
||||
loadStyle__8CamStyleFUs = .text:0x8007DCA0; // type:function size:0xE8
|
||||
getFloat__8CamStyleCFl = .text:0x8007DD90; // type:function size:0x10
|
||||
getFlag__8CamStyleCFl = .text:0x8007DDA0; // type:function size:0x30
|
||||
__ct__17dCameraGame_HIO_cFv = .text:0x8007DDD0; // type:function size:0x33C
|
||||
create__17dCameraGame_HIO_cFv = .text:0x8007E110; // type:function size:0x4
|
||||
remove__17dCameraGame_HIO_cFv = .text:0x8007E120; // type:function size:0x4
|
||||
fn_8007E130__12UnkCamChecksFP13dCameraGame_c = .text:0x8007E130; // type:function size:0x7C
|
||||
fn_8007E1B0__12UnkCamChecksFP12dAcObjBase_c = .text:0x8007E1B0; // type:function size:0x51C
|
||||
__ct__13dCameraGame_cFv = .text:0x8007E6D0; // type:function size:0x1CC
|
||||
create__13dCameraGame_cFv = .text:0x8007E8A0; // type:function size:0x230
|
||||
execute__13dCameraGame_cFv = .text:0x8007EAD0; // type:function size:0x75C
|
||||
chkCamera__FR7mVec3_cR7mVec3_cP12dAcObjBase_c = .text:0x8007F230; // type:function size:0x94
|
||||
chkCo__FRC7mVec3_c = .text:0x8007F2D0; // type:function size:0x38
|
||||
chkCameraPoint__FRC7mVec3_cRC7mVec3_cR7mVec3_cP12dAcObjBase_c = .text:0x8007F310; // type:function size:0x1EC
|
||||
linCrossAttentionTarget__FRC7mVec3_cRC7mVec3_cR11dBgS_LinChki = .text:0x8007F500; // type:function size:0xF4
|
||||
linCross__FR11dBgS_LinChki = .text:0x8007F600; // type:function size:0x34
|
||||
linCrossAttentionTarget__FRC7mVec3_cRC7mVec3_ci = .text:0x8007F640; // type:function size:0x70
|
||||
linCrossAttentionTarget__FRC7mVec3_cRC7mVec3_cR7mVec3_c = .text:0x8007F6B0; // type:function size:0x130
|
||||
unkCamLineChk__FR14dBgS_CamLinChkR14dBgS_CamLinChkUl = .text:0x8007F7E0; // type:function size:0x384
|
||||
unkCamCallback1__FP11dBgS_SphChkP10cBgD_Vtx_tiiiP8cM3dGPlaPv = .text:0x8007FB70; // type:function size:0x168
|
||||
unkCamCallback2__FP11dBgS_SphChkP10cBgD_Vtx_tiiiP8cM3dGPlaPv = .text:0x8007FCE0; // type:function size:0x128
|
||||
fn_8007FE10__FR7mVec3_cR7mVec3_cR7mVec3_cf = .text:0x8007FE10; // type:function size:0x268
|
||||
fn_80080080 = .text:0x80080080; // type:function size:0x10
|
||||
fn_80080090 = .text:0x80080090; // type:function size:0x86C
|
||||
fn_80080900 = .text:0x80080900; // type:function size:0x8
|
||||
RemoveCameraParamData = .text:0x80080910; // type:function size:0x44
|
||||
fn_80080960 = .text:0x80080960; // type:function size:0x118
|
||||
fn_80080A80 = .text:0x80080A80; // type:function size:0x6C
|
||||
fn_80080AF0 = .text:0x80080AF0; // type:function size:0x10
|
||||
fn_80080B00 = .text:0x80080B00; // type:function size:0x6C
|
||||
fn_80080B70 = .text:0x80080B70; // type:function size:0x220
|
||||
draw__13dCameraGame_cFv = .text:0x80080900; // type:function size:0x8
|
||||
remove__13dCameraGame_cFv = .text:0x80080910; // type:function size:0x44
|
||||
overrideCam__13dCameraGame_cFllsb = .text:0x80080960; // type:function size:0x118
|
||||
setCam__13dCameraGame_cFss = .text:0x80080A80; // type:function size:0x6C
|
||||
setCam__13dCameraGame_cFRC5CamId = .text:0x80080AF0; // type:function size:0x10
|
||||
clearCamIds__13dCameraGame_cFv = .text:0x80080B00; // type:function size:0x6C
|
||||
getCamId__13dCameraGame_cFv = .text:0x80080B70; // type:function size:0x220
|
||||
fn_80080D90 = .text:0x80080D90; // type:function size:0x7C8
|
||||
getNewStyle = .text:0x80081560; // type:function size:0x34
|
||||
getNewMode = .text:0x800815A0; // type:function size:0x440
|
||||
@@ -3177,23 +3177,23 @@ fn_800819E0 = .text:0x800819E0; // type:function size:0x244
|
||||
fn_80081C30 = .text:0x80081C30; // type:function size:0x25C
|
||||
doModeChange = .text:0x80081E90; // type:function size:0xEC
|
||||
doStyleChange = .text:0x80081F80; // type:function size:0x58
|
||||
fn_80081FE0 = .text:0x80081FE0; // type:function size:0x40
|
||||
fn_80082020 = .text:0x80082020; // type:function size:0xB4
|
||||
fn_800820E0 = .text:0x800820E0; // type:function size:0xC8
|
||||
fn_800821B0 = .text:0x800821B0; // type:function size:0xC0
|
||||
isCurrentTrend__13dCameraGame_cCFPCc = .text:0x80081FE0; // type:function size:0x40
|
||||
setView__13dCameraGame_cFRC7CamView = .text:0x80082020; // type:function size:0xB4
|
||||
onBecomeActive__13dCameraGame_cFv = .text:0x800820E0; // type:function size:0xC8
|
||||
onBecomeInactive__13dCameraGame_cFv = .text:0x800821B0; // type:function size:0xC0
|
||||
fn_80082270 = .text:0x80082270; // type:function size:0x44
|
||||
fn_800822C0 = .text:0x800822C0; // type:function size:0x10
|
||||
fn_800822D0 = .text:0x800822D0; // type:function size:0x24
|
||||
fn_80082300 = .text:0x80082300; // type:function size:0xC
|
||||
fn_80082310 = .text:0x80082310; // type:function size:0xB0
|
||||
fn_800823C0 = .text:0x800823C0; // type:function size:0xCF8
|
||||
fn_800830C0 = .text:0x800830C0; // type:function size:0x60
|
||||
fn_80083120 = .text:0x80083120; // type:function size:0x60
|
||||
fn_80083180 = .text:0x80083180; // type:function size:0x60
|
||||
fn_800831E0 = .text:0x800831E0; // type:function size:0x70
|
||||
fn_80083250 = .text:0x80083250; // type:function size:0x60
|
||||
fn_800832B0 = .text:0x800832B0; // type:function size:0x60
|
||||
fn_80083310 = .text:0x80083310; // type:function size:0x60
|
||||
__dt__13dCameraGame_cFv = .text:0x80082310; // type:function size:0xB0
|
||||
__sinit_\d_camera_game_cpp = .text:0x800823C0; // type:function size:0xCF8
|
||||
__dt__19GameCameraHandler06Fv = .text:0x800830C0; // type:function size:0x60
|
||||
__dt__19GameCameraHandler08Fv = .text:0x80083120; // type:function size:0x60
|
||||
__dt__19GameCameraHandler02Fv = .text:0x80083180; // type:function size:0x60
|
||||
__dt__19GameCameraHandler03Fv = .text:0x800831E0; // type:function size:0x70
|
||||
__dt__19GameCameraHandler05Fv = .text:0x80083250; // type:function size:0x60
|
||||
__dt__19GameCameraHandler07Fv = .text:0x800832B0; // type:function size:0x60
|
||||
__dt__19GameCameraHandler11Fv = .text:0x80083310; // type:function size:0x60
|
||||
debugPrintf = .text:0x80083370; // type:function size:0x50
|
||||
debugErrorf = .text:0x800833C0; // type:function size:0x50
|
||||
debugPrintMaybe = .text:0x80083410; // type:function size:0x54
|
||||
@@ -3201,8 +3201,8 @@ getActorName = .text:0x80083470; // type:function size:0x8
|
||||
fn_80083480 = .text:0x80083480; // type:function size:0x14
|
||||
fn_800834A0 = .text:0x800834A0; // type:function size:0x4
|
||||
fn_800834B0 = .text:0x800834B0; // type:function size:0x8
|
||||
fn_800834C0 = .text:0x800834C0; // type:function size:0x40
|
||||
fn_80083500 = .text:0x80083500; // type:function size:0x28
|
||||
__dt__18dCameraEvent_HIO_cFv = .text:0x800834C0; // type:function size:0x40
|
||||
__ct__18dCameraEvent_HIO_cFv = .text:0x80083500; // type:function size:0x28
|
||||
fn_80083530 = .text:0x80083530; // type:function size:0xD4
|
||||
getEventDZevDat = .text:0x80083610; // type:function size:0xC
|
||||
fn_80083620 = .text:0x80083620; // type:function size:0x4
|
||||
@@ -3226,7 +3226,7 @@ fn_80084060 = .text:0x80084060; // type:function size:0xBC
|
||||
fn_80084120 = .text:0x80084120; // type:function size:0x10A8
|
||||
fn_800851D0 = .text:0x800851D0; // type:function size:0x49C
|
||||
fn_80085670 = .text:0x80085670; // type:function size:0x1414
|
||||
fn_80086A90 = .text:0x80086A90; // type:function size:0x30
|
||||
__ct__7CamViewFv = .text:0x80086A90; // type:function size:0x30
|
||||
fn_80086AC0 = .text:0x80086AC0; // type:function size:0xC80
|
||||
fn_80087740 = .text:0x80087740; // type:function size:0x8
|
||||
fn_80087750 = .text:0x80087750; // type:function size:0x128
|
||||
@@ -3277,12 +3277,12 @@ fn_80090AD0 = .text:0x80090AD0; // type:function size:0x48C
|
||||
fn_80090F60 = .text:0x80090F60; // type:function size:0x360
|
||||
fn_800912C0 = .text:0x800912C0; // type:function size:0x244
|
||||
getEventSubMgrDefForIndex = .text:0x80091510; // type:function size:0x30
|
||||
fn_80091540 = .text:0x80091540; // type:function size:0xD0
|
||||
__ct__14dCameraEvent_cFv = .text:0x80091540; // type:function size:0xD0
|
||||
fn_80091610 = .text:0x80091610; // type:function size:0xC4
|
||||
fn_800916E0 = .text:0x800916E0; // type:function size:0x8
|
||||
advanceCameraRelatedEventSubmanagers = .text:0x800916F0; // type:function size:0x134
|
||||
fn_80091830 = .text:0x80091830; // type:function size:0xA8
|
||||
fn_800918E0 = .text:0x800918E0; // type:function size:0xA8
|
||||
fn_800918E0__14dCameraEvent_cFls = .text:0x800918E0; // type:function size:0xA8
|
||||
fn_80091990 = .text:0x80091990; // type:function size:0xF4
|
||||
fn_80091A90 = .text:0x80091A90; // type:function size:0x44
|
||||
fn_80091AE0 = .text:0x80091AE0; // type:function size:0xA4
|
||||
@@ -3290,7 +3290,7 @@ fn_80091B90 = .text:0x80091B90; // type:function size:0x8C
|
||||
fn_80091C20 = .text:0x80091C20; // type:function size:0x8
|
||||
fn_80091C30 = .text:0x80091C30; // type:function size:0x74
|
||||
fn_80091CB0 = .text:0x80091CB0; // type:function size:0x40
|
||||
initEventRelocationStuff = .text:0x80091CF0; // type:function size:0x6A4
|
||||
__sinit_\d_camera_event_cpp = .text:0x80091CF0; // type:function size:0x6A4
|
||||
ActorReference__ActorReference = .text:0x800923A0; // type:function size:0x14
|
||||
EventSystemActorRelation__EventSystemActorRelation = .text:0x800923C0; // type:function size:0x44
|
||||
EventSystemActorRelation____dt = .text:0x80092410; // type:function size:0x60
|
||||
@@ -3304,31 +3304,31 @@ fn_80092730 = .text:0x80092730; // type:function size:0x60
|
||||
fn_80092790 = .text:0x80092790; // type:function size:0x60
|
||||
fn_800927F0 = .text:0x800927F0; // type:function size:0xA0
|
||||
fn_80092890 = .text:0x80092890; // type:function size:0x60
|
||||
fn_800928F0 = .text:0x800928F0; // type:function size:0x40
|
||||
fn_80092930 = .text:0x80092930; // type:function size:0x88
|
||||
fn_800929C0 = .text:0x800929C0; // type:function size:0x1BC
|
||||
fn_80092B80 = .text:0x80092B80; // type:function size:0x138
|
||||
fn_80092CC0 = .text:0x80092CC0; // type:function size:0x50
|
||||
fn_80092D10 = .text:0x80092D10; // type:function size:0x170
|
||||
fn_80092E80 = .text:0x80092E80; // type:function size:0x8
|
||||
fn_80092E90 = .text:0x80092E90; // type:function size:0x430
|
||||
fn_800932C0 = .text:0x800932C0; // type:function size:0x8
|
||||
fn_800932D0 = .text:0x800932D0; // type:function size:0x8
|
||||
fn_800932E0 = .text:0x800932E0; // type:function size:0x8
|
||||
fn_800932F0 = .text:0x800932F0; // type:function size:0x4C
|
||||
fn_80093340 = .text:0x80093340; // type:function size:0x14
|
||||
fn_80093360 = .text:0x80093360; // type:function size:0x18
|
||||
fn_80093380 = .text:0x80093380; // type:function size:0x18
|
||||
fn_800933A0 = .text:0x800933A0; // type:function size:0x64
|
||||
fn_80093410 = .text:0x80093410; // type:function size:0x40
|
||||
fn_80093450 = .text:0x80093450; // type:function size:0xC
|
||||
fn_80093460 = .text:0x80093460; // type:function size:0x18C
|
||||
fn_800935F0 = .text:0x800935F0; // type:function size:0xD8
|
||||
fn_800936D0 = .text:0x800936D0; // type:function size:0xF4
|
||||
fn_800937D0 = .text:0x800937D0; // type:function size:0x98
|
||||
fn_80093870 = .text:0x80093870; // type:function size:0xA4
|
||||
fn_80093920 = .text:0x80093920; // type:function size:0xA4
|
||||
fn_800939D0 = .text:0x800939D0; // type:function size:0xA4
|
||||
__dt__16dCameraMap_HIO_cFv = .text:0x800928F0; // type:function size:0x40
|
||||
__ct__16dCameraMap_HIO_cFv = .text:0x80092930; // type:function size:0x88
|
||||
fn_800929C0__FRC7mVec3_cRC7mVec3_cP12dAcObjBase_c = .text:0x800929C0; // type:function size:0x1BC
|
||||
onBecomeActive__12dCameraMap_cFv = .text:0x80092B80; // type:function size:0x138
|
||||
onBecomeInactive__12dCameraMap_cFv = .text:0x80092CC0; // type:function size:0x50
|
||||
create__12dCameraMap_cFv = .text:0x80092D10; // type:function size:0x170
|
||||
remove__12dCameraMap_cFv = .text:0x80092E80; // type:function size:0x8
|
||||
execute__12dCameraMap_cFv = .text:0x80092E90; // type:function size:0x430
|
||||
vt_0x34__12dCameraMap_cFv = .text:0x800932C0; // type:function size:0x8
|
||||
draw__12dCameraMap_cFv = .text:0x800932D0; // type:function size:0x8
|
||||
isActiveOrAnimating__12dCameraMap_cCFv = .text:0x800932E0; // type:function size:0x8
|
||||
startOut__12dCameraMap_cFv = .text:0x800932F0; // type:function size:0x4C
|
||||
fn_80093340__12dCameraMap_cFv = .text:0x80093340; // type:function size:0x14
|
||||
setNoCameraTransition__12dCameraMap_cFv = .text:0x80093360; // type:function size:0x18
|
||||
setCameraTransition__12dCameraMap_cFv = .text:0x80093380; // type:function size:0x18
|
||||
setView__12dCameraMap_cFRC7CamView = .text:0x800933A0; // type:function size:0x64
|
||||
__dt__12dCameraMap_cFv = .text:0x80093410; // type:function size:0x40 scope:weak
|
||||
__sinit_\d_camera_map_cpp = .text:0x80093450; // type:function size:0xC scope:local
|
||||
camEaseIn__Fff = .text:0x80093460; // type:function size:0x18C
|
||||
camEaseInOut__Fff = .text:0x800935F0; // type:function size:0xD8
|
||||
camGetPointOnLine__FRC7mVec3_cRC7mVec3_cRC7mVec3_c = .text:0x800936D0; // type:function size:0xF4
|
||||
camOffsetPoint__FP12dAcObjBase_cRC7mVec3_c = .text:0x800937D0; // type:function size:0x98
|
||||
camOffsetPoint__FP12dAcObjBase_cRC7mVec3_cRC7mAng3_c = .text:0x80093870; // type:function size:0xA4
|
||||
camPointToLocal__FP12dAcObjBase_cRC7mVec3_c = .text:0x80093920; // type:function size:0xA4
|
||||
camPointToLocal__FP12dAcObjBase_cRC7mVec3_cRC7mAng3_c = .text:0x800939D0; // type:function size:0xA4
|
||||
getPosCopy3__FRC12dAcObjBase_c = .text:0x80093A80; // type:function size:0x1C
|
||||
__dt__16dAttention_HIO_cFv = .text:0x80093AA0; // type:function size:0x40
|
||||
init__16dAttention_HIO_cFv = .text:0x80093AE0; // type:function size:0x4
|
||||
@@ -3510,7 +3510,7 @@ fn_8009C8E0 = .text:0x8009C8E0; // type:function size:0x10
|
||||
fn_8009C8F0 = .text:0x8009C8F0; // type:function size:0x8
|
||||
EventRelocTable__processAdvancement2 = .text:0x8009C900; // type:function size:0x4
|
||||
__ct__17ActorEventRelatedFR9dAcBase_cPv = .text:0x8009C910; // type:function size:0x70
|
||||
fn_8009C980 = .text:0x8009C980; // type:function size:0x70
|
||||
__ct__17ActorEventRelatedFiPv = .text:0x8009C980; // type:function size:0x70
|
||||
__dt__17ActorEventRelatedFv = .text:0x8009C9F0; // type:function size:0x70
|
||||
fn_8009CA60 = .text:0x8009CA60; // type:function size:0x4C
|
||||
fn_8009CAB0 = .text:0x8009CAB0; // type:function size:0x44
|
||||
@@ -7850,7 +7850,7 @@ canCenterCursor1__13dLytMapMain_cCFl = .text:0x8013AC00; // type:function size:0
|
||||
setCursorType__13dLytMapMain_cFv = .text:0x8013AC10; // type:function size:0x138
|
||||
fn_8013AD50__13dLytMapMain_cFv = .text:0x8013AD50; // type:function size:0x370
|
||||
calculateBoundingWorldHitboxes__13dLytMapMain_cFv = .text:0x8013B0C0; // type:function size:0x28C
|
||||
fn_8013B350 = .text:0x8013B350; // type:function size:0x10
|
||||
fn_8013B350__13dLytMapMain_cFv = .text:0x8013B350; // type:function size:0x10
|
||||
initializeState_Invisible__13dLytMapMain_cFv = .text:0x8013B360; // type:function size:0x4
|
||||
executeState_Invisible__13dLytMapMain_cFv = .text:0x8013B370; // type:function size:0x4
|
||||
finalizeState_Invisible__13dLytMapMain_cFv = .text:0x8013B380; // type:function size:0x4
|
||||
@@ -10544,8 +10544,8 @@ fn_80198D70 = .text:0x80198D70; // type:function size:0x14
|
||||
StageManager__init2 = .text:0x80198D90; // type:function size:0x25C
|
||||
changeState__80sStateMgr_c<11dStageMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x80198FF0; // type:function size:0x10
|
||||
fn_80199000 = .text:0x80199000; // type:function size:0x110
|
||||
fn_80199110 = .text:0x80199110; // type:function size:0x8
|
||||
fn_80199120 = .text:0x80199120; // type:function size:0x10
|
||||
getCamera__11dStageMgr_cFl = .text:0x80199110; // type:function size:0x8
|
||||
getScreen__11dStageMgr_cFl = .text:0x80199120; // type:function size:0x10
|
||||
addObjId__11dStageMgr_cFUs = .text:0x80199130; // type:function size:0x8
|
||||
addStageArcn__11dStageMgr_cFPCc = .text:0x80199140; // type:function size:0x8
|
||||
addActorId__11dStageMgr_cFUs = .text:0x80199150; // type:function size:0x8
|
||||
@@ -10588,7 +10588,7 @@ fn_8019A010 = .text:0x8019A010; // type:function size:0xC
|
||||
fn_8019A020 = .text:0x8019A020; // type:function size:0xC
|
||||
fn_8019A030 = .text:0x8019A030; // type:function size:0x1C
|
||||
fn_8019A050 = .text:0x8019A050; // type:function size:0x1C
|
||||
fn_8019A070 = .text:0x8019A070; // type:function size:0x30
|
||||
setGlobalAlpha__11dStageMgr_cFUc = .text:0x8019A070; // type:function size:0x30
|
||||
getGlobalAlpha__11dStageMgr_cCFv = .text:0x8019A0A0; // type:function size:0x20
|
||||
fn_8019A0C0 = .text:0x8019A0C0; // type:function size:0x2C8
|
||||
fn_8019A390 = .text:0x8019A390; // type:function size:0x44
|
||||
@@ -10701,47 +10701,47 @@ AcLast__destroy = .text:0x8019D050; // type:function size:0x8
|
||||
AcLast__update = .text:0x8019D060; // type:function size:0x5C
|
||||
AcLast__draw = .text:0x8019D0C0; // type:function size:0x38
|
||||
AcLast__dtor = .text:0x8019D100; // type:function size:0x5C
|
||||
fn_8019D160 = .text:0x8019D160; // type:function size:0x40
|
||||
fn_8019D1A0 = .text:0x8019D1A0; // type:function size:0x6C
|
||||
dCamera__ctor = .text:0x8019D210; // type:function size:0x30
|
||||
dCamera__ctorCont = .text:0x8019D240; // type:function size:0x234
|
||||
dCamera__init = .text:0x8019D480; // type:function size:0x248
|
||||
debugWarn2 = .text:0x8019D6D0; // type:function size:0x50
|
||||
debugPrintf7 = .text:0x8019D720; // type:function size:0x50
|
||||
fn_8019D770 = .text:0x8019D770; // type:function size:0x78
|
||||
fn_8019D7F0 = .text:0x8019D7F0; // type:function size:0xA0
|
||||
fn_8019D890 = .text:0x8019D890; // type:function size:0x2E8
|
||||
fn_8019DB80 = .text:0x8019DB80; // type:function size:0x158
|
||||
fn_8019DCE0 = .text:0x8019DCE0; // type:function size:0x140
|
||||
fn_8019DE20 = .text:0x8019DE20; // type:function size:0x3C
|
||||
__dt__13dCamera_HIO_cFv = .text:0x8019D160; // type:function size:0x40
|
||||
__ct__13dCamera_HIO_cFv = .text:0x8019D1A0; // type:function size:0x6C
|
||||
dCamera_c_classInit__Fv = .text:0x8019D210; // type:function size:0x30
|
||||
__ct__9dCamera_cFv = .text:0x8019D240; // type:function size:0x234
|
||||
create__9dCamera_cFv = .text:0x8019D480; // type:function size:0x248
|
||||
debugWarn2__FPCce = .text:0x8019D6D0; // type:function size:0x50
|
||||
debugPrintf7__FPCce = .text:0x8019D720; // type:function size:0x50
|
||||
doDelete__9dCamera_cFv = .text:0x8019D770; // type:function size:0x78
|
||||
setWorldOffset__9dCamera_cFff = .text:0x8019D7F0; // type:function size:0xA0
|
||||
execute__9dCamera_cFv = .text:0x8019D890; // type:function size:0x2E8
|
||||
checkCameraChange__9dCamera_cFv = .text:0x8019DB80; // type:function size:0x158
|
||||
updateView__9dCamera_cFv = .text:0x8019DCE0; // type:function size:0x140
|
||||
draw__9dCamera_cFv = .text:0x8019DE20; // type:function size:0x3C
|
||||
isUnderwater__9dCamera_cCFv = .text:0x8019DE60; // type:function size:0xC
|
||||
fn_8019DE70 = .text:0x8019DE70; // type:function size:0x2A4
|
||||
fn_8019E120 = .text:0x8019E120; // type:function size:0xC4
|
||||
fn_8019E1F0 = .text:0x8019E1F0; // type:function size:0x10
|
||||
fn_8019E200 = .text:0x8019E200; // type:function size:0x18C
|
||||
fn_8019E390 = .text:0x8019E390; // type:function size:0xC
|
||||
apply__9dCamera_cFv = .text:0x8019DE70; // type:function size:0x2A4
|
||||
setActiveCamera__9dCamera_cFl = .text:0x8019E120; // type:function size:0xC4
|
||||
getEventLetterboxAmount__9dCamera_cFv = .text:0x8019E1F0; // type:function size:0x10
|
||||
setFrustum__9dCamera_cFfff = .text:0x8019E200; // type:function size:0x18C
|
||||
getYAngle__9dCamera_cCFv = .text:0x8019E390; // type:function size:0xC
|
||||
getYRot__9dCamera_cCFv = .text:0x8019E3A0; // type:function size:0x8
|
||||
fn_8019E3B0__9dCamera_cCFv = .text:0x8019E3B0; // type:function size:0xC
|
||||
fn_8019E3C0 = .text:0x8019E3C0; // type:function size:0x44
|
||||
fn_8019E410__9dCamera_cFv = .text:0x8019E410; // type:function size:0x1C
|
||||
fn_8019E430__9dCamera_cFv = .text:0x8019E430; // type:function size:0x18
|
||||
fn_8019E450 = .text:0x8019E450; // type:function size:0x7C
|
||||
fn_8019E4D0 = .text:0x8019E4D0; // type:function size:0x5C
|
||||
fn_8019E530 = .text:0x8019E530; // type:function size:0x130
|
||||
fn_8019E660 = .text:0x8019E660; // type:function size:0x8
|
||||
getXZAngle__9dCamera_cCFv = .text:0x8019E3B0; // type:function size:0xC
|
||||
fn_8019E3C0__9dCamera_cCFv = .text:0x8019E3C0; // type:function size:0x44
|
||||
enterMap__9dCamera_cFv = .text:0x8019E410; // type:function size:0x1C
|
||||
leaveMap__9dCamera_cFv = .text:0x8019E430; // type:function size:0x18
|
||||
applyTilt__9dCamera_cFv = .text:0x8019E450; // type:function size:0x7C
|
||||
fn_8019E4D0__9dCamera_cCFv = .text:0x8019E4D0; // type:function size:0x5C
|
||||
updateUnderwaterDepth__9dCamera_cFRC7mVec3_c = .text:0x8019E530; // type:function size:0x130
|
||||
isUnderwater___9dCamera_cCFv = .text:0x8019E660; // type:function size:0x8
|
||||
getUnderwaterDepth__9dCamera_cCFv = .text:0x8019E670; // type:function size:0x8
|
||||
fn_8019E680 = .text:0x8019E680; // type:function size:0x1D8
|
||||
fn_8019E860 = .text:0x8019E860; // type:function size:0x1C
|
||||
fn_8019E880 = .text:0x8019E880; // type:function size:0x8
|
||||
fn_8019E890 = .text:0x8019E890; // type:function size:0x40
|
||||
fn_8019E8D0 = .text:0x8019E8D0; // type:function size:0x54
|
||||
fn_8019E930 = .text:0x8019E930; // type:function size:0xC
|
||||
fn_8019E940 = .text:0x8019E940; // type:function size:0xC0
|
||||
fn_8019EA00__9dCamera_cFRC7mVec3_cRC7mVec3_cff = .text:0x8019EA00; // type:function size:0x70
|
||||
execute__Q29dCamera_c13screen_shakerFv = .text:0x8019E680; // type:function size:0x1D8
|
||||
getShakeOffset__Q29dCamera_c13screen_shakerCFv = .text:0x8019E860; // type:function size:0x1C
|
||||
setCamera__Q29dCamera_c11substruct_1FP9dCamera_c = .text:0x8019E880; // type:function size:0x8
|
||||
fn_8019E890__Q29dCamera_c11substruct_1Fv = .text:0x8019E890; // type:function size:0x40
|
||||
fn_8019E8D0__Q29dCamera_c11substruct_1FRC4mAng = .text:0x8019E8D0; // type:function size:0x54
|
||||
fn_8019E930__Q29dCamera_c11substruct_1CFv = .text:0x8019E930; // type:function size:0xC
|
||||
fn_8019E940__Q29dCamera_c11substruct_1Fv = .text:0x8019E940; // type:function size:0xC0
|
||||
setEventCamView__9dCamera_cFRC7mVec3_cRC7mVec3_cff = .text:0x8019EA00; // type:function size:0x70
|
||||
fn_8019EA70__9dCamera_cFb = .text:0x8019EA70; // type:function size:0x11C
|
||||
fn_8019EB90 = .text:0x8019EB90; // type:function size:0xC
|
||||
fn_8019EBA0 = .text:0x8019EBA0; // type:function size:0x160
|
||||
fn_8019ED00 = .text:0x8019ED00; // type:function size:0xC
|
||||
fn_8019EB90__9dCamera_cFv = .text:0x8019EB90; // type:function size:0xC
|
||||
__dt__9dCamera_cFv = .text:0x8019EBA0; // type:function size:0x160 scope:weak
|
||||
__sinit_\d_camera_cpp = .text:0x8019ED00; // type:function size:0xC scope:local
|
||||
GetInstance__11dObjLight_cFv = .text:0x8019ED10; // type:function size:0x8
|
||||
ObjLight__ctor = .text:0x8019ED20; // type:function size:0x30
|
||||
spawnLightObject = .text:0x8019ED50; // type:function size:0x40
|
||||
@@ -11183,11 +11183,11 @@ setSpawnData__12SpawnInfoExtFPCcUcUcUcRC7mVec3_c4mAng = .text:0x801BB2F0; // typ
|
||||
set__14LinkReloadInfoFUcRC7mVec3_c4mAngUl = .text:0x801BB380; // type:function size:0x34
|
||||
isCurrentStage__9dScGame_cFPCc = .text:0x801BB3C0; // type:function size:0x10
|
||||
isStageSkyloftLayer20__9dScGame_cFv = .text:0x801BB3D0; // type:function size:0x54
|
||||
isInCredits = .text:0x801BB430; // type:function size:0x54
|
||||
isStateLayerWithSeekerStoneHintMenu__9dScGame_cFv = .text:0x801BB490; // type:function size:0x78
|
||||
isInCredits__9dScGame_cFv = .text:0x801BB430; // type:function size:0x54
|
||||
isSeekerStoneStageAndLayer__9dScGame_cFv = .text:0x801BB490; // type:function size:0x78
|
||||
copySpawnNextToCurrent__9dScGame_cFv = .text:0x801BB510; // type:function size:0xBC
|
||||
actuallyTriggerEntrance__9dScGame_cFPCcUcUcUciiUcUsSc = .text:0x801BB5D0; // type:function size:0x104
|
||||
setCamera = .text:0x801BB6E0; // type:function size:0x10
|
||||
setCamera__9dScGame_cFlP9dCamera_c = .text:0x801BB6E0; // type:function size:0x10
|
||||
getCamera__9dScGame_cFl = .text:0x801BB6F0; // type:function size:0x10
|
||||
fn_801BB700 = .text:0x801BB700; // type:function size:0x4C
|
||||
fn_801BB750 = .text:0x801BB750; // type:function size:0x4C
|
||||
@@ -17804,7 +17804,7 @@ getStatus__12mFaderBase_cCFv = .text:0x802F0730; // type:function size:0x8
|
||||
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
|
||||
set__10mFrustum_cFffffRC6mMtx_c = .text:0x802F0820; // type:function size:0xB8
|
||||
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
|
||||
@@ -17837,7 +17837,7 @@ XrotS__6mMtx_cFRC4mAng = .text:0x802F16B0; // type:function size:0xBC
|
||||
XrotM__6mMtx_cFRC4mAng = .text:0x802F1770; // type:function size:0x4C
|
||||
YrotS__6mMtx_cFRC4mAng = .text:0x802F17C0; // type:function size:0xBC
|
||||
YrotM__6mMtx_cFRC4mAng = .text:0x802F1880; // type:function size:0x4C
|
||||
ZrotS__6mMtx_cF4mAng = .text:0x802F18D0; // type:function size:0xBC
|
||||
ZrotS__6mMtx_cFRC4mAng = .text:0x802F18D0; // type:function size:0xBC
|
||||
ZrotM__6mMtx_cFRC4mAng = .text:0x802F1990; // type:function size:0x4C
|
||||
ZXYrotS__6mMtx_cFRC4mAngRC4mAngRC4mAng = .text:0x802F19E0; // type:function size:0x60
|
||||
ZXYrotM__6mMtx_cFRC4mAngRC4mAngRC4mAng = .text:0x802F1A40; // type:function size:0x60
|
||||
@@ -19761,8 +19761,8 @@ CalcParticleAngle__4dCcSFP8cCcD_ObjP8cCcD_ObjP7mAng3_cb = .text:0x80356D20; // t
|
||||
fn_80356fd0__4dCcSFP7mVec3_cP8cCcD_ObjP8cCcD_Obj = .text:0x80356FD0; // type:function size:0x184
|
||||
ProcAtTgHitmark__4dCcSFP8cCcD_ObjP8cCcD_ObjP7mVec3_cUlP7mVec3_c = .text:0x80357160; // type:function size:0x21C
|
||||
SetAtTgObjInf__4dCcSFbbP8cCcD_ObjP8cCcD_ObjP7mVec3_cb = .text:0x80357380; // type:function size:0x274
|
||||
ChkCamera__4dCcSFR7mVec3_cR7mVec3_cP12dAcObjBase_cP12dAcObjBase_cP12dAcObjBase_cf = .text:0x80357600; // type:function size:0x1E8
|
||||
ChkCameraPoint__4dCcSFRC7mVec3_cRC7mVec3_cR7mVec3_cP12dAcObjBase_cP12dAcObjBase_cP12dAcObjBase_cf = .text:0x803577F0; // type:function size:0x2D4
|
||||
ChkCamera__4dCcSFR7mVec3_cR7mVec3_cfP12dAcObjBase_cP12dAcObjBase_cP12dAcObjBase_c = .text:0x80357600; // type:function size:0x1E8
|
||||
ChkCameraPoint__4dCcSFRC7mVec3_cRC7mVec3_cR7mVec3_cfP12dAcObjBase_cP12dAcObjBase_cP12dAcObjBase_c = .text:0x803577F0; // type:function size:0x2D4
|
||||
ChkCo__4dCcSFRC7mVec3_cP12dAcObjBase_c = .text:0x80357AD0; // type:function size:0x1B4
|
||||
fn_80357c90__4dCcSFRC7mVec3_cRC7mVec3_cUlPPv = .text:0x80357C90; // type:function size:0x218
|
||||
Set__4dCcSFP8cCcD_Obj = .text:0x80357EB0; // type:function size:0x13C
|
||||
@@ -30925,7 +30925,7 @@ lbl_8050E678 = .data:0x8050E678; // type:object size:0x40
|
||||
lbl_8050E6B8 = .data:0x8050E6B8; // type:object size:0x7C
|
||||
lbl_8050E734 = .data:0x8050E734; // type:object size:0xA data:string
|
||||
lbl_8050E740 = .data:0x8050E740; // type:object size:0xB data:string
|
||||
lbl_8050E750 = .data:0x8050E750; // type:object size:0xD0
|
||||
sCamDefs = .data:0x8050E750; // type:object size:0xD0
|
||||
lbl_8050E820 = .data:0x8050E820; // type:object size:0xB data:string
|
||||
lbl_8050E82C = .data:0x8050E82C; // type:object size:0xE data:string
|
||||
lbl_8050E83C = .data:0x8050E83C; // type:object size:0x1D data:string
|
||||
@@ -30933,10 +30933,23 @@ lbl_8050E85C = .data:0x8050E85C; // type:object size:0x16 data:string
|
||||
lbl_8050E874 = .data:0x8050E874; // type:object size:0x15 data:string
|
||||
lbl_8050E88C = .data:0x8050E88C; // type:object size:0x16 data:string
|
||||
lbl_8050E8A4 = .data:0x8050E8A4; // type:object size:0xE data:string
|
||||
lbl_8050E8B4 = .data:0x8050E8B4; // type:object size:0x110
|
||||
lbl_8050E9C4 = .data:0x8050E9C4; // type:object size:0xC
|
||||
lbl_8050E9D0 = .data:0x8050E9D0; // type:object size:0x34
|
||||
lbl_8050EA04 = .data:0x8050EA04; // type:object size:0x14
|
||||
lbl_8050E8B4 = .data:0x8050E8B4; // type:object size:0xA data:string
|
||||
__vt__19GameCameraHandler12 = .data:0x8050E8C0; // type:object size:0x14
|
||||
__vt__19GameCameraHandler11 = .data:0x8050E8D4; // type:object size:0x14
|
||||
__vt__19GameCameraHandler10 = .data:0x8050E8E8; // type:object size:0x14
|
||||
__vt__19GameCameraHandler09 = .data:0x8050E8FC; // type:object size:0x14
|
||||
__vt__19GameCameraHandler08 = .data:0x8050E910; // type:object size:0x14
|
||||
__vt__19GameCameraHandler07 = .data:0x8050E924; // type:object size:0x14
|
||||
__vt__19GameCameraHandler06 = .data:0x8050E938; // type:object size:0x14
|
||||
__vt__19GameCameraHandler05 = .data:0x8050E94C; // type:object size:0x14
|
||||
__vt__19GameCameraHandler04 = .data:0x8050E960; // type:object size:0x14
|
||||
__vt__19GameCameraHandler02 = .data:0x8050E974; // type:object size:0x14
|
||||
__vt__19GameCameraHandler01 = .data:0x8050E988; // type:object size:0x14
|
||||
__vt__19GameCameraHandler03 = .data:0x8050E99C; // type:object size:0x14
|
||||
__vt__17GameCameraHandler = .data:0x8050E9B0; // type:object size:0x14
|
||||
__vt__17dCameraGame_HIO_c = .data:0x8050E9C4; // type:object size:0xC
|
||||
__vt__13dCameraGame_c = .data:0x8050E9D0; // type:object size:0x34
|
||||
__vt__19GameCameraHandler00 = .data:0x8050EA04; // type:object size:0x14
|
||||
lbl_8050EA18 = .data:0x8050EA18; // type:object size:0x13 data:string
|
||||
lbl_8050EA2C = .data:0x8050EA2C; // type:object size:0x60
|
||||
lbl_8050EA8C = .data:0x8050EA8C; // type:object size:0x54
|
||||
@@ -30960,11 +30973,11 @@ lbl_8050EF88 = .data:0x8050EF88; // type:object size:0x31 data:string
|
||||
lbl_8050EFBC = .data:0x8050EFBC; // type:object size:0x14 data:string
|
||||
lbl_8050EFD0 = .data:0x8050EFD0; // type:object size:0x33 data:string
|
||||
lbl_8050F004 = .data:0x8050F004; // type:object size:0x12C
|
||||
lbl_8050F130 = .data:0x8050F130; // type:object size:0xC
|
||||
lbl_8050F13C = .data:0x8050F13C; // type:object size:0x34
|
||||
__vt__18dCameraEvent_HIO_c = .data:0x8050F130; // type:object size:0xC
|
||||
__vt__14dCameraEvent_c = .data:0x8050F13C; // type:object size:0x34
|
||||
lbl_8050F170 = .data:0x8050F170; // type:object size:0x10
|
||||
lbl_8050F180 = .data:0x8050F180; // type:object size:0x10
|
||||
lbl_8050F190 = .data:0x8050F190; // type:object size:0x38
|
||||
__vt__16dCameraMap_HIO_c = .data:0x8050F180; // type:object size:0xC
|
||||
__vt__12dCameraMap_c = .data:0x8050F190; // type:object size:0x38
|
||||
lbl_8050F1C8 = .data:0x8050F1C8; // type:object size:0xA data:string
|
||||
lbl_8050F1D4 = .data:0x8050F1D4; // type:object size:0x9 data:string
|
||||
lbl_8050F1E0 = .data:0x8050F1E0; // type:object size:0x11 data:string
|
||||
@@ -35626,12 +35639,12 @@ lbl_8052C0F0 = .data:0x8052C0F0; // type:object size:0x38
|
||||
g_profile_LAST = .data:0x8052C128; // type:object size:0xC
|
||||
AcLast__vtable = .data:0x8052C134; // type:object size:0x4C
|
||||
g_profile_CAMERA = .data:0x8052C180; // type:object size:0xC
|
||||
lbl_8052C18C = .data:0x8052C18C; // type:object size:0x1D data:string
|
||||
lbl_8052C1AC = .data:0x8052C1AC; // type:object size:0xC data:string
|
||||
lbl_8052C1B8 = .data:0x8052C1B8; // type:object size:0x9 data:string
|
||||
lbl_8052C1C4 = .data:0x8052C1C4; // type:object size:0xE data:string
|
||||
lbl_8052C1D4 = .data:0x8052C1D4; // type:object size:0xC
|
||||
dCamera__vtable = .data:0x8052C1E0; // type:object size:0x50
|
||||
@28488 = .data:0x8052C18C; // type:object size:0x1D scope:local data:string
|
||||
@28490 = .data:0x8052C1AC; // type:object size:0xC scope:local data:string
|
||||
@28503 = .data:0x8052C1B8; // type:object size:0x9 scope:local data:string
|
||||
@28766 = .data:0x8052C1C4; // type:object size:0xE scope:local data:string
|
||||
__vt__13dCamera_HIO_c = .data:0x8052C1D4; // type:object size:0xC
|
||||
__vt__9dCamera_c = .data:0x8052C1E0; // type:object size:0x4C
|
||||
g_profile_LIGHT_OBJECT = .data:0x8052C230; // type:object size:0xC
|
||||
jumptable_8052C23C = .data:0x8052C23C; // type:object size:0x2C scope:local
|
||||
jumptable_8052C268 = .data:0x8052C268; // type:object size:0x24 scope:local
|
||||
@@ -40712,10 +40725,10 @@ lbl_80572E84 = .sdata:0x80572E84; // type:object size:0x5 data:string
|
||||
lbl_80572E8C = .sdata:0x80572E8C; // type:object size:0x5 data:string
|
||||
lbl_80572E94 = .sdata:0x80572E94; // type:object size:0x7 data:string
|
||||
lbl_80572E9C = .sdata:0x80572E9C; // type:object size:0x4
|
||||
lbl_80572EA0 = .sdata:0x80572EA0; // type:object size:0x4 data:4byte
|
||||
lbl_80572EA4 = .sdata:0x80572EA4; // type:object size:0x4 data:4byte
|
||||
lbl_80572EA8 = .sdata:0x80572EA8; // type:object size:0x5 data:string
|
||||
lbl_80572EB0 = .sdata:0x80572EB0; // type:object size:0x8 data:string
|
||||
@26678 = .sdata:0x80572EA0; // type:object size:0x4 scope:local data:4byte
|
||||
@26679 = .sdata:0x80572EA4; // type:object size:0x4 scope:local data:4byte
|
||||
@28489 = .sdata:0x80572EA8; // type:object size:0x5 scope:local data:string
|
||||
@28606 = .sdata:0x80572EB0; // type:object size:0x8 scope:local data:string
|
||||
lbl_80572EB8 = .sdata:0x80572EB8; // type:object size:0x5 data:string
|
||||
lbl_80572EC0 = .sdata:0x80572EC0; // type:object size:0x5 data:string
|
||||
lbl_80572EC8 = .sdata:0x80572EC8; // type:object size:0x6 data:string
|
||||
@@ -42247,12 +42260,12 @@ lbl_80575338 = .sbss:0x80575338; // type:object size:0x4
|
||||
lbl_8057533C = .sbss:0x8057533C; // type:object size:0x4 data:4byte
|
||||
lbl_80575340 = .sbss:0x80575340; // type:object size:0x4 data:4byte
|
||||
lbl_80575344 = .sbss:0x80575344; // type:object size:0x4 data:4byte
|
||||
CAMERA_PARAMETER_DATA = .sbss:0x80575348; // type:object size:0x4 data:4byte
|
||||
CAMERA_PARAM_FLOAT_START = .sbss:0x8057534C; // type:object size:0x4 data:4byte
|
||||
CAMERA_PARAM_FLAG_START = .sbss:0x80575350; // type:object size:0x4 data:4byte
|
||||
CAMERA_PARAM_STYLE_START = .sbss:0x80575354; // type:object size:0x4 data:4byte
|
||||
CAMERA_PARAM_TREND_START = .sbss:0x80575358; // type:object size:0x4 data:4byte
|
||||
CAM_STYLE_IDX_TA22 = .sbss:0x8057535C; // type:object size:0x4 data:4byte
|
||||
sHeader__13dCameraGame_c = .sbss:0x80575348; // type:object size:0x4 data:4byte
|
||||
sFloats__13dCameraGame_c = .sbss:0x8057534C; // type:object size:0x4 data:4byte
|
||||
sFlags__13dCameraGame_c = .sbss:0x80575350; // type:object size:0x4 data:4byte
|
||||
sStyles__13dCameraGame_c = .sbss:0x80575354; // type:object size:0x4 data:4byte
|
||||
sTrends__13dCameraGame_c = .sbss:0x80575358; // type:object size:0x4 data:4byte
|
||||
sStyleIdxes__13dCameraGame_c = .sbss:0x8057535C; // type:object size:0x4 data:4byte
|
||||
GROOSENATOR_REF = .sbss:0x80575360; // type:object size:0x4 data:4byte
|
||||
lbl_80575364 = .sbss:0x80575364; // type:object size:0x4 data:4byte
|
||||
lbl_80575368 = .sbss:0x80575368; // type:object size:0x8 data:4byte
|
||||
@@ -42401,7 +42414,7 @@ lbl_805756FE = .sbss:0x805756FE; // type:object size:0x1 data:byte
|
||||
lbl_805756FF = .sbss:0x805756FF; // type:object size:0x1 data:byte
|
||||
lbl_80575700 = .sbss:0x80575700; // type:object size:0x4 data:4byte
|
||||
lbl_80575704 = .sbss:0x80575704; // type:object size:0x4 data:4byte
|
||||
lbl_80575708 = .sbss:0x80575708; // type:object size:0x8 data:4byte
|
||||
@LOCAL@execute__Q29dCamera_c13screen_shakerFv@upOrDown = .sbss:0x80575708; // type:object size:0x4 scope:local data:4byte
|
||||
LIGHT_OBJECT = .sbss:0x80575710; // type:object size:0x4 data:4byte
|
||||
lbl_80575714 = .sbss:0x80575714; // type:object size:0x1 data:byte
|
||||
lbl_80575715 = .sbss:0x80575715; // type:object size:0x1 data:byte
|
||||
@@ -45180,29 +45193,29 @@ lbl_80579528 = .sdata2:0x80579528; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057952C = .sdata2:0x8057952C; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579530 = .sdata2:0x80579530; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579534 = .sdata2:0x80579534; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579538 = .sdata2:0x80579538; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057953C = .sdata2:0x8057953C; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579540 = .sdata2:0x80579540; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579544 = .sdata2:0x80579544; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579548 = .sdata2:0x80579548; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057954C = .sdata2:0x8057954C; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579550 = .sdata2:0x80579550; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579554 = .sdata2:0x80579554; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579558 = .sdata2:0x80579558; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057955C = .sdata2:0x8057955C; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579560 = .sdata2:0x80579560; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579564 = .sdata2:0x80579564; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579568 = .sdata2:0x80579568; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057956C = .sdata2:0x8057956C; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579570 = .sdata2:0x80579570; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579574 = .sdata2:0x80579574; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579578 = .sdata2:0x80579578; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057957C = .sdata2:0x8057957C; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579580 = .sdata2:0x80579580; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579584 = .sdata2:0x80579584; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579588 = .sdata2:0x80579588; // type:object size:0x4 align:4 data:float
|
||||
lbl_80579590 = .sdata2:0x80579590; // type:object size:0x8 align:8 data:double
|
||||
lbl_80579598 = .sdata2:0x80579598; // type:object size:0x4 align:4 data:float
|
||||
@28181 = .sdata2:0x80579538; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28182 = .sdata2:0x8057953C; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28183 = .sdata2:0x80579540; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28184 = .sdata2:0x80579544; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28185 = .sdata2:0x80579548; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28186 = .sdata2:0x8057954C; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28187 = .sdata2:0x80579550; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28188 = .sdata2:0x80579554; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28189 = .sdata2:0x80579558; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28190 = .sdata2:0x8057955C; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28191 = .sdata2:0x80579560; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28192 = .sdata2:0x80579564; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28243 = .sdata2:0x80579568; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28244 = .sdata2:0x8057956C; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28283 = .sdata2:0x80579570; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28337 = .sdata2:0x80579574; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28338 = .sdata2:0x80579578; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28339 = .sdata2:0x8057957C; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28340 = .sdata2:0x80579580; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28414 = .sdata2:0x80579584; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28415 = .sdata2:0x80579588; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28418 = .sdata2:0x80579590; // type:object size:0x8 scope:local align:8 data:double
|
||||
@28432 = .sdata2:0x80579598; // type:object size:0x4 scope:local align:4 data:float
|
||||
lbl_805795A0 = .sdata2:0x805795A0; // type:object size:0x8 align:8 data:double
|
||||
lbl_805795A8 = .sdata2:0x805795A8; // type:object size:0x8 align:8 data:double
|
||||
lbl_805795B0 = .sdata2:0x805795B0; // type:object size:0x4 align:4 data:float
|
||||
@@ -47131,26 +47144,26 @@ lbl_8057AF3C = .sdata2:0x8057AF3C; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF40 = .sdata2:0x8057AF40; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF44 = .sdata2:0x8057AF44; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF48 = .sdata2:0x8057AF48; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF50 = .sdata2:0x8057AF50; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF54 = .sdata2:0x8057AF54; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF58 = .sdata2:0x8057AF58; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF5C = .sdata2:0x8057AF5C; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF60 = .sdata2:0x8057AF60; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF64 = .sdata2:0x8057AF64; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF68 = .sdata2:0x8057AF68; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF6C = .sdata2:0x8057AF6C; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF70 = .sdata2:0x8057AF70; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF74 = .sdata2:0x8057AF74; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF78 = .sdata2:0x8057AF78; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF80 = .sdata2:0x8057AF80; // type:object size:0x8 align:8 data:double
|
||||
lbl_8057AF88 = .sdata2:0x8057AF88; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF8C = .sdata2:0x8057AF8C; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF90 = .sdata2:0x8057AF90; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF94 = .sdata2:0x8057AF94; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF98 = .sdata2:0x8057AF98; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AF9C = .sdata2:0x8057AF9C; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AFA0 = .sdata2:0x8057AFA0; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AFA4 = .sdata2:0x8057AFA4; // type:object size:0x4 align:4 data:float
|
||||
@28173 = .sdata2:0x8057AF50; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28174 = .sdata2:0x8057AF54; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28175 = .sdata2:0x8057AF58; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28176 = .sdata2:0x8057AF5C; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28177 = .sdata2:0x8057AF60; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28178 = .sdata2:0x8057AF64; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28383 = .sdata2:0x8057AF68; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28384 = .sdata2:0x8057AF6C; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28385 = .sdata2:0x8057AF70; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28568 = .sdata2:0x8057AF74; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28569 = .sdata2:0x8057AF78; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28572 = .sdata2:0x8057AF80; // type:object size:0x8 scope:local align:8 data:double
|
||||
@28883 = .sdata2:0x8057AF88; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28884 = .sdata2:0x8057AF8C; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28885 = .sdata2:0x8057AF90; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28925 = .sdata2:0x8057AF94; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28926 = .sdata2:0x8057AF98; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28927 = .sdata2:0x8057AF9C; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28928 = .sdata2:0x8057AFA0; // type:object size:0x4 scope:local align:4 data:float
|
||||
@28929 = .sdata2:0x8057AFA4; // type:object size:0x4 scope:local align:4 data:float
|
||||
lbl_8057AFA8 = .sdata2:0x8057AFA8; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AFAC = .sdata2:0x8057AFAC; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AFB0 = .sdata2:0x8057AFB0; // type:object size:0x4 align:4 data:float
|
||||
@@ -51242,35 +51255,51 @@ sRumblePreset10__9dRumble_c = .bss:0x805A07F0; // type:object size:0xC data:4byt
|
||||
@LOCAL@start__9dRumble_cFRC14dRumbleEntry_cUl@rumble_string = .bss:0x805A0840; // type:object size:0x21 scope:local data:byte
|
||||
@LOCAL@getCurrentStageDirectory__22CurrentStageArcManagerFv@sStageDirTmp = .bss:0x805A0868; // type:object size:0x40 scope:local data:byte
|
||||
s_roomArcTmp = .bss:0x805A08A8; // type:object size:0x20 scope:local data:byte
|
||||
lbl_805A08C8 = .bss:0x805A08C8; // type:object size:0x138 data:2byte
|
||||
lbl_805A0A00 = .bss:0x805A0A00; // type:object size:0x28 data:byte
|
||||
lbl_805A0A28 = .bss:0x805A0A28; // type:object size:0x28 data:byte
|
||||
lbl_805A0A50 = .bss:0x805A0A50; // type:object size:0x28 data:byte
|
||||
lbl_805A0A78 = .bss:0x805A0A78; // type:object size:0x28 data:byte
|
||||
lbl_805A0AA0 = .bss:0x805A0AA0; // type:object size:0x28 data:byte
|
||||
lbl_805A0AC8 = .bss:0x805A0AC8; // type:object size:0x28 data:byte
|
||||
lbl_805A0AF0 = .bss:0x805A0AF0; // type:object size:0x28 data:byte
|
||||
lbl_805A0B18 = .bss:0x805A0B18; // type:object size:0x28 data:byte
|
||||
lbl_805A0B40 = .bss:0x805A0B40; // type:object size:0x28 data:byte
|
||||
lbl_805A0B68 = .bss:0x805A0B68; // type:object size:0x28 data:byte
|
||||
lbl_805A0B90 = .bss:0x805A0B90; // type:object size:0x28 data:byte
|
||||
lbl_805A0BB8 = .bss:0x805A0BB8; // type:object size:0x28 data:byte
|
||||
lbl_805A0BE0 = .bss:0x805A0BE0; // type:object size:0x28 data:byte
|
||||
CAM_TREND_IDX_BalanceBall = .bss:0x805A0C08; // type:object size:0x90 data:4byte
|
||||
lbl_805A0C98 = .bss:0x805A0C98; // type:object size:0x208 data:4byte
|
||||
lbl_805A0EA0 = .bss:0x805A0EA0; // type:object size:0x28 data:byte
|
||||
lbl_805A0EC8 = .bss:0x805A0EC8; // type:object size:0xD0 data:byte
|
||||
lbl_805A0F98 = .bss:0x805A0F98; // type:object size:0x120 data:byte
|
||||
lbl_805A10B8 = .bss:0x805A10B8; // type:object size:0xA8 data:byte
|
||||
lbl_805A1160 = .bss:0x805A1160; // type:object size:0x84 data:byte
|
||||
lbl_805A11E4 = .bss:0x805A11E4; // type:object size:0x9C data:byte
|
||||
lbl_805A1280 = .bss:0x805A1280; // type:object size:0xC8 data:byte
|
||||
lbl_805A1348 = .bss:0x805A1348; // type:object size:0x78 data:byte
|
||||
lbl_805A13C0 = .bss:0x805A13C0; // type:object size:0xA0 data:byte
|
||||
lbl_805A1460 = .bss:0x805A1460; // type:object size:0xA0 data:byte
|
||||
lbl_805A1500 = .bss:0x805A1500; // type:object size:0x38 data:byte
|
||||
lbl_805A1538 = .bss:0x805A1538; // type:object size:0xD8 data:byte
|
||||
lbl_805A1610 = .bss:0x805A1610; // type:object size:0x50 data:byte
|
||||
sHio = .bss:0x805A08C8; // type:object size:0x138 scope:local data:2byte
|
||||
style00 = .bss:0x805A0A00; // type:object size:0x28 data:byte
|
||||
style01 = .bss:0x805A0A28; // type:object size:0x28 data:byte
|
||||
style02 = .bss:0x805A0A50; // type:object size:0x28 data:byte
|
||||
style03 = .bss:0x805A0A78; // type:object size:0x28 data:byte
|
||||
style04 = .bss:0x805A0AA0; // type:object size:0x28 data:byte
|
||||
style05 = .bss:0x805A0AC8; // type:object size:0x28 data:byte
|
||||
style06 = .bss:0x805A0AF0; // type:object size:0x28 data:byte
|
||||
style07 = .bss:0x805A0B18; // type:object size:0x28 data:byte
|
||||
style08 = .bss:0x805A0B40; // type:object size:0x28 data:byte
|
||||
style09 = .bss:0x805A0B68; // type:object size:0x28 data:byte
|
||||
style10 = .bss:0x805A0B90; // type:object size:0x28 data:byte
|
||||
style11 = .bss:0x805A0BB8; // type:object size:0x28 data:byte
|
||||
style12 = .bss:0x805A0BE0; // type:object size:0x28 data:byte
|
||||
sTrendIdxes__13dCameraGame_c = .bss:0x805A0C08; // type:object size:0x84 data:4byte
|
||||
lbl_805A0C8C = .bss:0x805A0C8C; // type:object size:0xC data:4byte
|
||||
sRef = .bss:0x805A0C98; // type:object size:0xC scope:local data:4byte
|
||||
sVecs1 = .bss:0x805A0CA8; // type:object size:0x20 scope:local data:4byte
|
||||
sVecs2 = .bss:0x805A0CC8; // type:object size:0x20 scope:local data:4byte
|
||||
sVecs3 = .bss:0x805A0CE8; // type:object size:0x20 scope:local data:4byte
|
||||
sVecs4 = .bss:0x805A0D08; // type:object size:0x20 scope:local data:4byte
|
||||
lbl_805A0D28 = .bss:0x805A0D28; // type:object size:0xC data:4byte
|
||||
camHandlerUnused00 = .bss:0x805A0D38; // type:object size:0xB8 data:4byte
|
||||
lbl_805A0DF0 = .bss:0x805A0DF0; // type:object size:0xC data:byte
|
||||
camHandlerUnused01 = .bss:0x805A0E00; // type:object size:0xA0 data:byte
|
||||
camHandler00 = .bss:0x805A0EA0; // type:object size:0x28 data:byte
|
||||
camHandler01 = .bss:0x805A0EC8; // type:object size:0xC0 data:byte
|
||||
lbl_805A0F88 = .bss:0x805A0F88; // type:object size:0xC data:byte
|
||||
camHandler02 = .bss:0x805A0F98; // type:object size:0x110 data:byte
|
||||
lbl_805A10A8 = .bss:0x805A10A8; // type:object size:0xC data:byte
|
||||
camHandler03 = .bss:0x805A10B8; // type:object size:0xA8 data:byte
|
||||
camHandler04 = .bss:0x805A1160; // type:object size:0x78 data:byte
|
||||
lbl_805A11D8 = .bss:0x805A11D8; // type:object size:0xC data:byte
|
||||
camHandler05 = .bss:0x805A11E4; // type:object size:0x8C data:byte
|
||||
lbl_805A1270 = .bss:0x805A1270; // type:object size:0xC data:byte
|
||||
camHandler06 = .bss:0x805A1280; // type:object size:0xB8 data:byte
|
||||
lbl_805A1338 = .bss:0x805A1338; // type:object size:0xC data:byte
|
||||
camHandler07 = .bss:0x805A1348; // type:object size:0x68 data:byte
|
||||
lbl_805A13B0 = .bss:0x805A13B0; // type:object size:0xC data:byte
|
||||
camHandler08 = .bss:0x805A13C0; // type:object size:0xA0 data:byte
|
||||
camHandler09 = .bss:0x805A1460; // type:object size:0xA0 data:byte
|
||||
camHandler10 = .bss:0x805A1500; // type:object size:0x28 data:byte
|
||||
lbl_805A1528 = .bss:0x805A1528; // type:object size:0xC data:byte
|
||||
camHandler11 = .bss:0x805A1538; // type:object size:0xD8 data:byte
|
||||
camHandler12 = .bss:0x805A1610; // type:object size:0x50 data:byte
|
||||
lbl_805A1660 = .bss:0x805A1660; // type:object size:0x20
|
||||
lbl_805A1680 = .bss:0x805A1680; // type:object size:0xF68
|
||||
lbl_805A25E8 = .bss:0x805A25E8; // type:object size:0x50
|
||||
@@ -51290,7 +51319,7 @@ lbl_805A2BF0 = .bss:0x805A2BF0; // type:object size:0xB8 data:byte
|
||||
lbl_805A2CA8 = .bss:0x805A2CA8; // type:object size:0x140 data:byte
|
||||
lbl_805A2DE8 = .bss:0x805A2DE8; // type:object size:0xA8 data:byte
|
||||
lbl_805A2E90 = .bss:0x805A2E90; // type:object size:0x88 data:byte
|
||||
lbl_805A2F18 = .bss:0x805A2F18; // type:object size:0x40
|
||||
sHio = .bss:0x805A2F18; // type:object size:0x40 scope:local
|
||||
lbl_805A2F58 = .bss:0x805A2F58; // type:object size:0x10
|
||||
attnVectors = .bss:0x805A2F68; // type:object size:0x30
|
||||
sHio = .bss:0x805A2F98; // type:object size:0x18 scope:local
|
||||
@@ -52223,7 +52252,7 @@ StageMgr__STATE_READ_OBJECT_SOUND = .bss:0x805B26B0; // type:object size:0x40 da
|
||||
StageMgr__STATE_SCENE_CHANGE_SAVE = .bss:0x805B26F0; // type:object size:0x40 data:4byte
|
||||
StageMgr__STATE_RESTART_SCENE_WAIT = .bss:0x805B2730; // type:object size:0x40 data:4byte
|
||||
StageMgr__STATE_RESTART_SCENE = .bss:0x805B2770; // type:object size:0x30 data:4byte
|
||||
lbl_805B27A0 = .bss:0x805B27A0; // type:object size:0x38
|
||||
sHio = .bss:0x805B27A0; // type:object size:0x34 scope:local
|
||||
lbl_805B27D8 = .bss:0x805B27D8; // type:object size:0xD8 align:4 data:float
|
||||
lbl_805B28B0 = .bss:0x805B28B0; // type:object size:0x10
|
||||
WeatherTag__STATE_WAIT = .bss:0x805B28C0; // type:object size:0x30 data:4byte
|
||||
|
||||
+6
-5
@@ -484,10 +484,11 @@ config.libs = [
|
||||
Object(Matching, "toBeSorted/actor_info.cpp"),
|
||||
Object(NonMatching, "toBeSorted/d_sword_swing_effect_mgr.cpp"),
|
||||
Object(NonMatching, "toBeSorted/d_enemy_sword_mdl.cpp"),
|
||||
Object(NonMatching, "toBeSorted/d_camera.cpp"),
|
||||
Object(NonMatching, "toBeSorted/d_event_1.cpp"),
|
||||
Object(NonMatching, "toBeSorted/unk_map_cam.cpp"),
|
||||
Object(NonMatching, "toBeSorted/unk_vec_math_event.cpp"),
|
||||
Object(Matching, "toBeSorted/d_camera_base.cpp"),
|
||||
Object(NonMatching, "toBeSorted/d_camera_game.cpp"),
|
||||
Object(NonMatching, "toBeSorted/d_camera_event.cpp"),
|
||||
Object(Matching, "toBeSorted/d_camera_map.cpp"),
|
||||
Object(NonMatching, "toBeSorted/d_camera_math.cpp"),
|
||||
Object(NonMatching, "toBeSorted/attention.cpp"),
|
||||
Object(NonMatching, "toBeSorted/d_t_camera.cpp"),
|
||||
Object(Matching, "toBeSorted/dowsing_target.cpp"),
|
||||
@@ -617,7 +618,7 @@ config.libs = [
|
||||
Object(NonMatching, "d/d_hbm.cpp"),
|
||||
Object(NonMatching, "d/d_stage_mgr.cpp"),
|
||||
Object(NonMatching, "d/d_last.cpp"),
|
||||
Object(NonMatching, "d/d_camera.cpp"),
|
||||
Object(Matching, "d/d_camera.cpp"),
|
||||
Object(NonMatching, "d/d_light_obj.cpp"),
|
||||
Object(NonMatching, "d/tg/d_t_weather.cpp"),
|
||||
Object(Matching, "d/d_message.cpp"),
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
struct cBgD_Vtx_t;
|
||||
|
||||
class dBgS_SphChk;
|
||||
typedef void *(*SphChk_Callback)(dBgS_SphChk *, cBgD_Vtx_t *, int, int, int, cM3dGPla *, void *);
|
||||
typedef void (*SphChk_Callback)(dBgS_SphChk *, cBgD_Vtx_t *, int, int, int, cM3dGPla *, void *);
|
||||
|
||||
class dBgS_SphChk : public cM3dGSph, public cBgS_PolyInfo, public cBgS_Chk, public dBgS_Chk {
|
||||
public:
|
||||
|
||||
@@ -64,9 +64,9 @@ public:
|
||||
static u32 ProcAtTgHitmark(cCcD_Obj *, cCcD_Obj *, mVec3_c *, u32, mVec3_c *);
|
||||
static void SetAtTgObjInf(bool, bool, cCcD_Obj *, cCcD_Obj *, mVec3_c *, bool);
|
||||
|
||||
bool ChkCamera(mVec3_c &, mVec3_c &, dAcObjBase_c *, dAcObjBase_c *, dAcObjBase_c *, f32);
|
||||
bool ChkCamera(mVec3_c &, mVec3_c &, f32, dAcObjBase_c *, dAcObjBase_c *, dAcObjBase_c *);
|
||||
bool
|
||||
ChkCameraPoint(const mVec3_c &, const mVec3_c &, mVec3_c &, dAcObjBase_c *, dAcObjBase_c *, dAcObjBase_c *, f32);
|
||||
ChkCameraPoint(const mVec3_c &, const mVec3_c &, mVec3_c &, f32, dAcObjBase_c *, dAcObjBase_c *, dAcObjBase_c *);
|
||||
|
||||
bool ChkCo(const mVec3_c &, dAcObjBase_c *);
|
||||
bool fn_80357c90(const mVec3_c &, const mVec3_c &, u32, cCcD_ShapeAttr **, f32);
|
||||
|
||||
@@ -37,7 +37,7 @@ struct CAM {
|
||||
/* 0x04 */ mVec3_c position;
|
||||
/* 0x10 */ f32 angle;
|
||||
/* 0x14 */ u8 _0x14[8];
|
||||
/* 0x1C */ char name[16];
|
||||
/* 0x1C */ char trendName[16];
|
||||
};
|
||||
|
||||
// Size 0x38
|
||||
@@ -61,6 +61,7 @@ struct EVNT {
|
||||
|
||||
// Size 0x???
|
||||
struct bzsFILE {
|
||||
/* 0x00 */ s16 field_0x00;
|
||||
// ???
|
||||
};
|
||||
|
||||
|
||||
+175
-53
@@ -3,84 +3,206 @@
|
||||
|
||||
#include "common.h"
|
||||
#include "d/d_base.h"
|
||||
#include "egg/gfx/eggCamera.h"
|
||||
#include "m/m_angle.h"
|
||||
#include "m/m_frustum.h"
|
||||
#include "m/m_mtx.h"
|
||||
#include "m/m_vec.h"
|
||||
|
||||
extern "C" bool fn_80081FE0(void *, const char *);
|
||||
extern "C" bool fn_800918E0(void *, s32, s16);
|
||||
extern "C" void fn_80080960(void *, s32, s32, s8, s32);
|
||||
extern "C" void fn_80093340(void *);
|
||||
extern "C" void fn_80093360(void *);
|
||||
extern "C" void fn_80093380(void *);
|
||||
#include "toBeSorted/d_camera_base.h"
|
||||
#include "toBeSorted/d_camera_event.h"
|
||||
#include "toBeSorted/d_camera_game.h"
|
||||
#include "toBeSorted/d_camera_map.h"
|
||||
|
||||
class dCamera_c : public dBase_c {
|
||||
private:
|
||||
class substruct_1 {
|
||||
public:
|
||||
substruct_1() : mActive(false), mFSStickAngle(0), field_0x04(0) {}
|
||||
|
||||
void setCamera(dCamera_c *cam);
|
||||
void fn_8019E890();
|
||||
mAng fn_8019E930() const;
|
||||
void fn_8019E940();
|
||||
|
||||
private:
|
||||
void fn_8019E8D0(const mAng &ang);
|
||||
|
||||
/* 0x00 */ bool mActive;
|
||||
/* 0x02 */ mAng mFSStickAngle;
|
||||
/* 0x04 */ mAng field_0x04;
|
||||
/* 0x08 */ dCamera_c *mpCamera;
|
||||
};
|
||||
|
||||
class screen_shaker {
|
||||
public:
|
||||
screen_shaker() {}
|
||||
|
||||
void init(dCamera_c *cam) {
|
||||
mpCamera = cam;
|
||||
mScreenShakeIntensity = 0.0f;
|
||||
mShakeOffset = mVec3_c::Zero;
|
||||
}
|
||||
|
||||
void setScreenShakeIntensity(f32 val) {
|
||||
mScreenShakeIntensity = val;
|
||||
}
|
||||
|
||||
bool execute();
|
||||
mVec3_c getShakeOffset() const;
|
||||
|
||||
private:
|
||||
/* 0x00 */ dCamera_c *mpCamera;
|
||||
/* 0x04 */ f32 mScreenShakeIntensity;
|
||||
/* 0x08 */ mVec3_c mShakeOffset;
|
||||
};
|
||||
|
||||
enum CameraIdx_e {
|
||||
CAM_GAME_0,
|
||||
CAM_GAME_1,
|
||||
CAM_EVENT,
|
||||
CAM_MAP,
|
||||
|
||||
CAM_MAX,
|
||||
};
|
||||
|
||||
enum Flags_e {
|
||||
CAM_FLAGS_MAP = (1 << 1),
|
||||
CAM_FLAGS_0x4 = (1 << 2),
|
||||
CAM_FLAGS_0x10 = (1 << 4),
|
||||
CAM_FLAGS_EVENT = (1 << 5),
|
||||
CAM_FLAGS_UNDERWATER = (1 << 6),
|
||||
CAM_FLAGS_IN_EVENT = (1 << 7),
|
||||
CAM_FLAGS_0x100 = (1 << 8),
|
||||
CAM_FLAGS_NO_LETTERBOX_IN_EVENT = (1 << 9),
|
||||
};
|
||||
|
||||
public:
|
||||
bool isCurrentTrend(const char *name) const {
|
||||
return fn_80081FE0(field_0xD98, name);
|
||||
dCamera_c();
|
||||
virtual int create() override;
|
||||
virtual int doDelete() override;
|
||||
virtual int execute() override;
|
||||
virtual int draw() override;
|
||||
|
||||
void setWorldOffset(f32 x, f32 z);
|
||||
void setFrustum(f32 fov, f32 near, f32 far);
|
||||
|
||||
dCameraGame_c *getGameCam1() {
|
||||
return static_cast<dCameraGame_c *>(mpCameras[CAM_GAME_0]);
|
||||
}
|
||||
|
||||
void *getField_0xD98() const {
|
||||
return field_0xD98;
|
||||
dCameraGame_c *getGameCam2() {
|
||||
return static_cast<dCameraGame_c *>(mpCameras[CAM_GAME_1]);
|
||||
}
|
||||
|
||||
const mVec3_c &getPositionMaybe() const {
|
||||
return mPositionMaybe;
|
||||
dCameraEvent_c *getEventCam() {
|
||||
return static_cast<dCameraEvent_c *>(mpCameras[CAM_EVENT]);
|
||||
}
|
||||
const mVec3_c &getField_0x78() const {
|
||||
return field_0x78;
|
||||
|
||||
dCameraMap_c *getMapCam() {
|
||||
return static_cast<dCameraMap_c *>(mpCameras[CAM_MAP]);
|
||||
}
|
||||
f32 getField_0x2A8() const {
|
||||
return field_0x2A8;
|
||||
|
||||
const mVec3_c &getPosition() const {
|
||||
return mView.mPosition;
|
||||
}
|
||||
|
||||
const mVec3_c &getTarget() const {
|
||||
return mView.mTarget;
|
||||
}
|
||||
f32 getWaterHeight() const {
|
||||
return mWaterHeight;
|
||||
}
|
||||
|
||||
// TODO what makes this different?
|
||||
mAng getYRot() const;
|
||||
|
||||
bool doFn_800918E0(s32 a1, s16 a2) {
|
||||
return fn_800918E0(field_0xDA0, a1, a2);
|
||||
}
|
||||
|
||||
void doFn_80093340() {
|
||||
fn_80093340(field_0xDA4);
|
||||
}
|
||||
|
||||
void doFn_80093360() {
|
||||
fn_80093360(field_0xDA4);
|
||||
}
|
||||
|
||||
void doFn_80093380() {
|
||||
fn_80093380(field_0xDA4);
|
||||
}
|
||||
|
||||
void setScreenShakeIntensity(f32 val) {
|
||||
mScreenShakeIntensity = val;
|
||||
mScreenShaker.setScreenShakeIntensity(val);
|
||||
}
|
||||
|
||||
UNKWORD getField_0xDA8() const {
|
||||
return field_0xDA8;
|
||||
return mActiveCameraIdx;
|
||||
}
|
||||
|
||||
bool isUnderwater() const;
|
||||
f32 getUnderwaterDepth() const;
|
||||
|
||||
void fn_8019EA00(const mVec3_c&, const mVec3_c&, f32, f32);
|
||||
void fn_8019E430();
|
||||
void fn_8019E410();
|
||||
mAng fn_8019E3B0() const;
|
||||
void fn_8019EA70(bool);
|
||||
bool fn_8019EA70(bool);
|
||||
bool setEventCamView(const mVec3_c &, const mVec3_c &, f32, f32);
|
||||
mAng getYAngle() const;
|
||||
mAng getXZAngle() const;
|
||||
void apply();
|
||||
|
||||
bool fn_8019E3C0() const;
|
||||
void enterMap();
|
||||
void leaveMap();
|
||||
bool fn_8019E4D0() const;
|
||||
f32 fn_8019EB90();
|
||||
|
||||
private:
|
||||
/* 0x068 */ u8 _0x068[0x6C - 0x068];
|
||||
/* 0x06C */ mVec3_c mPositionMaybe;
|
||||
/* 0x078 */ mVec3_c field_0x78;
|
||||
/* 0x084 */ u8 _0x084[0x2A8 - 0x084];
|
||||
/* 0x2A8 */ f32 field_0x2A8;
|
||||
/* 0x2AC */ u8 _0x2AC[0xD98 - 0x2AC];
|
||||
/* 0xD98 */ void *field_0xD98;
|
||||
/* 0xD9C */ u8 _0xD9C[0xDA0 - 0xD9C];
|
||||
/* 0xDA0 */ void *field_0xDA0;
|
||||
/* 0xDA4 */ void *field_0xDA4;
|
||||
/* 0xDA8 */ UNKWORD field_0xDA8;
|
||||
/* 0xDAC */ u8 _0xDAC[0xDB0 - 0xDAC];
|
||||
/* 0xDB0 */ f32 mScreenShakeIntensity;
|
||||
void onFlag(u32 flag) {
|
||||
mFlags |= flag;
|
||||
}
|
||||
|
||||
void offFlag(u32 flag) {
|
||||
mFlags &= ~flag;
|
||||
}
|
||||
|
||||
bool checkFlag(u32 flag) const {
|
||||
return mFlags & flag;
|
||||
}
|
||||
|
||||
void updateView();
|
||||
void applyTilt();
|
||||
|
||||
s32 setActiveCamera(s32 newCamIdx);
|
||||
|
||||
void fn_8019DB80();
|
||||
f32 fn_8019E1F0();
|
||||
void checkCameraChange();
|
||||
f32 getEventLetterboxAmount();
|
||||
|
||||
void updateUnderwaterDepth(const mVec3_c &pos);
|
||||
bool isUnderwater_() const;
|
||||
|
||||
/* 0x068 */ s32 mMyCameraIndex;
|
||||
/* 0x06C */ CamView mView;
|
||||
/* 0x08C */ mVec3_c field_0x08C;
|
||||
/* 0x098 */ mAng mYAngle;
|
||||
/* 0x09A */ mAng mXZAngle;
|
||||
/* 0x09C */ mFrustum_c mFrustum;
|
||||
/* 0x18C */ mMtx_c mMtx;
|
||||
/* 0x1BC */ mMtx_c mMtxInv;
|
||||
|
||||
/* 0x1EC */ u8 field_0x1EC[0x1F8 - 0x1EC];
|
||||
|
||||
/* 0x1F8 */ UNKWORD field_0x1F8;
|
||||
/* 0x1FC */ u8 field_0x1FC;
|
||||
/* 0x200 */ EGG::Screen *mpScreen;
|
||||
/* 0x204 */ EGG::LookAtCamera mLookAtCamera;
|
||||
|
||||
/* 0x28C */ f32 mLetterboxAmount;
|
||||
/* 0x290 */ f32 field_0x290;
|
||||
/* 0x294 */ f32 mGlobalAlpha;
|
||||
/* 0x298 */ u8 field_0x298;
|
||||
/* 0x299 */ u8 field_0x299;
|
||||
/* 0x29C */ f32 field_0x29C;
|
||||
/* 0x2A0 */ u8 field_0x2A0;
|
||||
/* 0x2A1 */ u8 field_0x2A1;
|
||||
/* 0x2A4 */ f32 mUnderwaterDepth;
|
||||
/* 0x2A8 */ f32 mWaterHeight;
|
||||
/* 0x2AC */ bool mIsUnderwater;
|
||||
/* 0x2B0 */ u32 mFlags;
|
||||
/* 0x2B4 */ dCameraGame_c mGameCam1;
|
||||
/* 0x728 */ dCameraGame_c mGameCam2;
|
||||
/* 0xB9C */ dCameraEvent_c mEventCam;
|
||||
/* 0xCD0 */ dCameraMap_c mMapCam;
|
||||
/* 0xD98 */ dCameraBase_c *mpCameras[CAM_MAX];
|
||||
/* 0xDA8 */ s32 mActiveCameraIdx;
|
||||
/* 0xDAC */ screen_shaker mScreenShaker;
|
||||
/* 0xDC0 */ substruct_1 field_0xDC0;
|
||||
/* 0xDCC */ bool field_0xDCC;
|
||||
/* 0xDD0 */ CamView mView1;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -132,6 +132,10 @@ public:
|
||||
mpFile = file;
|
||||
}
|
||||
|
||||
const bzsFILE *getFile() const {
|
||||
return mpFile;
|
||||
}
|
||||
|
||||
void setScen(const SCEN *scen, u16 count) {
|
||||
mScenCount = count;
|
||||
mpScen = scen;
|
||||
|
||||
@@ -34,6 +34,10 @@ public:
|
||||
|
||||
f32 fn_801BBEC0() const;
|
||||
|
||||
void setLetterboxAmount(f32 v) {
|
||||
mLetterboxAmount = v;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x98 */ f32 mLetterboxAmount;
|
||||
};
|
||||
@@ -152,7 +156,7 @@ public:
|
||||
static bool isCurrentStage(const char *stageName);
|
||||
static bool isStageSkyloftLayer20();
|
||||
static bool isInCredits();
|
||||
static bool isStateLayerWithSeekerStoneHintMenu();
|
||||
static bool isSeekerStoneStageAndLayer();
|
||||
|
||||
static SpawnInfo currentSpawnInfo;
|
||||
static SpawnInfo nextSpawnInfo;
|
||||
@@ -223,6 +227,10 @@ public:
|
||||
return mFader.isStatus(mFaderBase_c::FADING_IN);
|
||||
}
|
||||
|
||||
void setTargetingScreenLetterboxAmount(f32 amt) {
|
||||
mScreen1.setLetterboxAmount(amt);
|
||||
}
|
||||
|
||||
f32 targetingScreenFn_801BBEC0() const {
|
||||
return mScreen1.fn_801BBEC0();
|
||||
}
|
||||
|
||||
@@ -52,6 +52,7 @@ public:
|
||||
STATE_FUNC_DECLARE(dStageMgr_c, RestartScene);
|
||||
|
||||
public:
|
||||
void setGlobalAlpha(u8 alpha);
|
||||
u8 getGlobalAlpha() const;
|
||||
|
||||
bool isAreaTypeNormal() const;
|
||||
@@ -123,6 +124,10 @@ public:
|
||||
void initUnkWithWater(u32 val, d3d::UnkWithWater *waterThing);
|
||||
void destroyUnkWithWater(u32 val, d3d::UnkWithWater *waterThing);
|
||||
|
||||
const STIF *getStif() const {
|
||||
return mpStif;
|
||||
}
|
||||
|
||||
const RMPL *getRmpl() const {
|
||||
return mpRmpl;
|
||||
}
|
||||
@@ -173,6 +178,7 @@ public:
|
||||
void addActorId(u16 actorId);
|
||||
|
||||
nw4r::g3d::Camera getCamera(s32 idx);
|
||||
EGG::Screen *getScreen(s32 idx);
|
||||
|
||||
void fn_80199B60(u8);
|
||||
|
||||
|
||||
@@ -587,6 +587,7 @@ public:
|
||||
void queueMapEvent(s32 mapEvent, s32 surfaceProvince, s32 c);
|
||||
void startMapEvent(s32 mapEvent, s32 surfaceProvince, s32 c);
|
||||
bool isVisibleNoIntro() const;
|
||||
void fn_8013B350();
|
||||
|
||||
const dMapSaveObjDefinition *getSaveObjDefinition(s32 province, s32 statueIdx) const;
|
||||
|
||||
@@ -836,7 +837,7 @@ private:
|
||||
/* 0x8C84 */ u8 field_0x8C84;
|
||||
|
||||
/* 0x8C88 */ f32 field_0x8C88;
|
||||
/* 0x8C8C */ f32 field_0x8C8C;
|
||||
/* 0x8C8C */ f32 mOutDuration;
|
||||
/* 0x8C90 */ bool mMapUpDirection;
|
||||
/* 0x8C91 */ bool mNextMapUpDirection;
|
||||
/* 0x8C92 */ bool mMapUpDirectionAfterZoomToDetail;
|
||||
@@ -850,7 +851,7 @@ private:
|
||||
/* 0x8CA8 */ s32 mNextMapMode;
|
||||
|
||||
/* 0x8CAC */ u8 field_0x8CAC;
|
||||
/* 0x8CAD */ bool mDoCameraTransition;
|
||||
/* 0x8CAD */ bool mCameraTransitionPossible;
|
||||
/* 0x8CAE */ bool field_0x8CAE;
|
||||
|
||||
/* 0x8CB0 */ u32 mEventTimer;
|
||||
@@ -958,6 +959,14 @@ public:
|
||||
return mMapMain.isVisibleNoIntro();
|
||||
}
|
||||
|
||||
void doFn_8013B350() {
|
||||
mMapMain.fn_8013B350();
|
||||
}
|
||||
|
||||
f32 getOutDuration() const {
|
||||
return mMapMain.mOutDuration;
|
||||
}
|
||||
|
||||
bool build();
|
||||
bool remove();
|
||||
bool execute();
|
||||
|
||||
@@ -110,6 +110,10 @@ public:
|
||||
SetSizeY(size.y);
|
||||
}
|
||||
|
||||
f32 GetAspect() const {
|
||||
return GetSize().x / GetSize().y;
|
||||
}
|
||||
|
||||
void SetNearZ(f32 nearZ) {
|
||||
mNearZ = nearZ;
|
||||
}
|
||||
|
||||
@@ -124,6 +124,9 @@ public:
|
||||
static f32 s2r_c(f32 ang) {
|
||||
return ang * sAngToRad;
|
||||
}
|
||||
static f32 s2n_c(f32 ang) {
|
||||
return ang * sAngToNorm;
|
||||
}
|
||||
static f32 r2s_c(f32 ang) {
|
||||
return ang * sRadToAng;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,9 @@
|
||||
// Bunch of untested assumptions in here
|
||||
class mFrustum_c {
|
||||
public:
|
||||
void set(f32, f32, f32 near, f32 far, const mMtx_c &mtx);
|
||||
void set(f32, f32, f32, f32, f32 near, f32 far, const mMtx_c &mtx, bool);
|
||||
|
||||
/* 0x00 */ mMtx_c mView;
|
||||
/* 0x30 */ nw4r::math::PLANE mPlane_0x30;
|
||||
/* 0x40 */ nw4r::math::PLANE mPlane_0x40;
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
class ActorEventRelated {
|
||||
public:
|
||||
ActorEventRelated(dAcBase_c &owner, void *);
|
||||
ActorEventRelated(UNKWORD, void *);
|
||||
~ActorEventRelated();
|
||||
|
||||
bool isThisActorInEvent();
|
||||
|
||||
@@ -222,6 +222,17 @@ public:
|
||||
|
||||
bool checkLink2() const;
|
||||
|
||||
dAcObjBase_c *getTargetedActor() {
|
||||
if (!isInNormalGameState() || !mTargeted) {
|
||||
return nullptr;
|
||||
}
|
||||
return getTargetedActorUnchecked();
|
||||
}
|
||||
|
||||
dAcObjBase_c *getTargetedActorUnchecked() {
|
||||
return mGroups[1].getOtherPool()->getActor(mModels.mCurrentTargetInfoIdx);
|
||||
}
|
||||
|
||||
private:
|
||||
bool isInNormalGameState() const;
|
||||
bool checkZButtonPressed() const;
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
#ifndef TO_BE_SORTED_D_CAMERA_BASE_H
|
||||
#define TO_BE_SORTED_D_CAMERA_BASE_H
|
||||
|
||||
#include "common.h"
|
||||
#include "m/m_vec.h"
|
||||
|
||||
// A basic description of a camera perspective, simplified.
|
||||
struct CamView {
|
||||
CamView() : mPosition(0.0f, 0.0f, 0.0f), mTarget(0.0f, 0.0f, 1.0f), mFov(50.0f), mTilt(0.0f) {}
|
||||
CamView(const mVec3_c &pos, const mVec3_c &target, f32 fov, f32 tilt) : mPosition(pos), mTarget(target), mFov(fov), mTilt(tilt) {}
|
||||
~CamView() {}
|
||||
|
||||
/* 0x00 */ mVec3_c mPosition;
|
||||
/* 0x0C */ mVec3_c mTarget;
|
||||
/* 0x18 */ f32 mFov;
|
||||
/* 0x1C */ f32 mTilt;
|
||||
};
|
||||
|
||||
// Abstract camera base class. The game camera class will hold various subclasses
|
||||
// of this base class.
|
||||
class dCameraBase_c {
|
||||
protected:
|
||||
/* 0x00 */ bool mCreated;
|
||||
/* 0x01 */ u8 mPrevIsActive;
|
||||
/* 0x02 */ bool mIsActive;
|
||||
/* 0x04 */ s32 mIndex;
|
||||
/* 0x08 */ CamView mView;
|
||||
|
||||
public:
|
||||
dCameraBase_c() : mCreated(false), mPrevIsActive(0), mIsActive(false), mIndex(-1) {}
|
||||
|
||||
bool doCreate(s32 index);
|
||||
bool doRemove();
|
||||
bool doExecute();
|
||||
bool doDraw();
|
||||
|
||||
// vt at 0x28
|
||||
/* vt 0x08 */ virtual void onBecomeActive() {}
|
||||
/* vt 0x0C */ virtual void onBecomeInactive() {}
|
||||
/* vt 0x10 */ virtual bool create();
|
||||
/* vt 0x14 */ virtual bool remove();
|
||||
/* vt 0x18 */ virtual bool execute();
|
||||
/* vt 0x1C */ virtual bool draw();
|
||||
/* vt 0x20 */ virtual ~dCameraBase_c() {}
|
||||
/* vt 0x24 */ virtual CamView &getView() {
|
||||
// TODO - const?
|
||||
return mView;
|
||||
}
|
||||
/* vt 0x28 */ virtual void activate() {
|
||||
mIsActive = true;
|
||||
}
|
||||
/* vt 0x2C */ virtual void deactivate() {
|
||||
mIsActive = false;
|
||||
}
|
||||
/* vt 0x30 */ virtual void setView(const CamView &view) {
|
||||
// TODO - is this actually a base impl?
|
||||
mView = view;
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,34 @@
|
||||
#ifndef TO_BE_SORTED_D_CAMERA_EVENT_H
|
||||
#define TO_BE_SORTED_D_CAMERA_EVENT_H
|
||||
|
||||
#include "toBeSorted/actor_event.h"
|
||||
#include "toBeSorted/d_camera_base.h"
|
||||
|
||||
class dCameraEvent_c : public dCameraBase_c {
|
||||
public:
|
||||
dCameraEvent_c();
|
||||
/* vt 0x08 */ virtual void onBecomeActive() override;
|
||||
/* vt 0x0C */ virtual void onBecomeInactive() override;
|
||||
/* vt 0x10 */ virtual bool create() override;
|
||||
/* vt 0x14 */ virtual bool remove() override;
|
||||
/* vt 0x18 */ virtual bool execute() override;
|
||||
/* vt 0x1C */ virtual bool draw() override;
|
||||
/* vt 0x20 */ virtual ~dCameraEvent_c() {}
|
||||
|
||||
void fn_800918E0(s32, s16);
|
||||
|
||||
private:
|
||||
/* 0x2C */ u8 field_0x2C[0x48 - 0x2C];
|
||||
/* 0x48 */ u8 field_0x48;
|
||||
/* 0x4A */ s16 field_0x4A;
|
||||
/* 0x4C */ u8 field_0x4C[0x50 - 0x4C];
|
||||
/* 0x50 */ ActorEventRelated mEventRelated;
|
||||
/* 0xA0 */ u8 field_0xA0;
|
||||
/* 0xA4 */ s32 field_0xA4;
|
||||
/* 0xA8 */ u8 field_0xA8[0xAC - 0xA8];
|
||||
/* 0xAC */ s32 field_0xAC;
|
||||
/* 0xB0 */ u8 field_0xB0[0xB4 - 0xB0];
|
||||
/* 0xB4 */ CamView mViews[4];
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,279 @@
|
||||
#ifndef TO_BE_SORTED_D_CAMERA_GAME_H
|
||||
#define TO_BE_SORTED_D_CAMERA_GAME_H
|
||||
|
||||
#include "common.h"
|
||||
#include "d/a/d_a_base.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/a/obj/d_a_obj_base.h"
|
||||
#include "d/col/bg/d_bg_s_gnd_chk.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "toBeSorted/d_camera_base.h"
|
||||
#include "toBeSorted/deg_angle_util.h"
|
||||
|
||||
class dCamera_c;
|
||||
|
||||
// Size: 0xC
|
||||
struct CamParamHeader {
|
||||
/* 0x00 */ u32 magic;
|
||||
/* 0x04 */ s16 numFloats;
|
||||
/* 0x06 */ s16 numFlags;
|
||||
/* 0x08 */ s16 numStyles;
|
||||
/* 0x0A */ s16 numTrends;
|
||||
};
|
||||
|
||||
// Size: 0xA
|
||||
#pragma pack(push, 2)
|
||||
struct CamParamStyle {
|
||||
/* 0x00 */ u8 id[4];
|
||||
/* 0x04 */ u8 _0x04[2];
|
||||
/* 0x06 */ u16 floatParamOffset;
|
||||
/* 0x08 */ u16 flagParamOffset;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
// Size: 0x24
|
||||
struct CamParamTrend {
|
||||
/* 0x00 */ char name[16]; // not sure
|
||||
/* 0x10 */ u8 _0x10[0x24 - 0x10];
|
||||
};
|
||||
|
||||
enum CamTrendIndex_e {
|
||||
CAM_TREND_IDX_BalanceBall,
|
||||
CAM_TREND_IDX_Swim,
|
||||
CAM_TREND_IDX_Surface,
|
||||
CAM_TREND_IDX_SkyDive,
|
||||
CAM_TREND_IDX_Dive,
|
||||
CAM_TREND_IDX_Lift,
|
||||
CAM_TREND_IDX_Crawl,
|
||||
CAM_TREND_IDX_Field,
|
||||
CAM_TREND_IDX_Dungeon,
|
||||
CAM_TREND_IDX_mogu,
|
||||
CAM_TREND_IDX_Tornade,
|
||||
CAM_TREND_IDX_Rope,
|
||||
CAM_TREND_IDX_Tightrope,
|
||||
CAM_TREND_IDX_Parachute,
|
||||
CAM_TREND_IDX_DialKey,
|
||||
CAM_TREND_IDX_BirdRide,
|
||||
CAM_TREND_IDX_Trolley,
|
||||
CAM_TREND_IDX_Boomerang,
|
||||
CAM_TREND_IDX_Room,
|
||||
CAM_TREND_IDX_AfterCrawl,
|
||||
CAM_TREND_IDX_TerryShip_Island,
|
||||
CAM_TREND_IDX_Catapult,
|
||||
CAM_TREND_IDX_TightropeHang,
|
||||
CAM_TREND_IDX_BossKey,
|
||||
CAM_TREND_IDX_SkyDiveNear,
|
||||
CAM_TREND_IDX_mogu2,
|
||||
CAM_TREND_IDX_ClawShot,
|
||||
CAM_TREND_IDX_Town,
|
||||
CAM_TREND_IDX_Cannon,
|
||||
CAM_TREND_IDX_BirdRideLD,
|
||||
CAM_TREND_IDX_Nushi,
|
||||
CAM_TREND_IDX_Island,
|
||||
CAM_TREND_IDX_Windmill,
|
||||
|
||||
CAM_TREND_IDX_MAX,
|
||||
};
|
||||
|
||||
enum CamStyleIndex_e {
|
||||
CAM_STYLE_IDX_TA22,
|
||||
|
||||
CAM_STYLE_IDX_MAX,
|
||||
};
|
||||
|
||||
class dCameraGame_c;
|
||||
|
||||
struct CamId {
|
||||
CamId() : roomCamId(-1), roomId(-1), field_0x04(0) {}
|
||||
s16 roomCamId;
|
||||
s16 roomId;
|
||||
s16 field_0x04;
|
||||
|
||||
void clear() {
|
||||
roomCamId = -1;
|
||||
roomId = dAcPy_c::GetLinkM()->mRoomID;
|
||||
field_0x04 = 0;
|
||||
}
|
||||
|
||||
bool isValid() const {
|
||||
if (field_0x04 < 3 && roomId != dAcPy_c::GetLinkM()->mRoomID) {
|
||||
return false;
|
||||
} else {
|
||||
return field_0x04 >= -1 && roomCamId >= 0 && roomCamId < 0xFF;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
struct UnkCamCheck {
|
||||
/* 0x000 */ u8 field_0x000;
|
||||
/* 0x004 */ dBgS_CamGndChk chk;
|
||||
/* 0x094 */ f32 field_0x094;
|
||||
/* 0x098 */ CamId camId;
|
||||
};
|
||||
|
||||
struct UnkCamRef {
|
||||
/* 0x00 */ bool field_0x00;
|
||||
/* 0x04 */ mVec3_c field_0x04;
|
||||
/* 0x10 */ dAcRef_c<dAcObjBase_c> mMoveBgActorRef;
|
||||
};
|
||||
|
||||
struct UnkCamChecks {
|
||||
/* 0x000 */ UnkCamCheck mChk1;
|
||||
/* 0x0A0 */ UnkCamCheck mChk2;
|
||||
/* 0x140 */ UnkCamRef mRef;
|
||||
/* 0x15C */ UNKWORD field_0x15C;
|
||||
/* 0x160 */ UNKWORD field_0x160;
|
||||
/* 0x164 */ CamId field_0x164;
|
||||
/* 0x16A */ u8 field_0x16A;
|
||||
/* 0x16B */ u8 field_0x16B;
|
||||
/* 0x16C */ CamId field_0x16C;
|
||||
/* 0x174 */ dCameraGame_c *mpCamera;
|
||||
|
||||
void fn_8007E130(dCameraGame_c *system);
|
||||
void fn_8007E1B0(dAcObjBase_c *ac);
|
||||
};
|
||||
|
||||
class CamStyle {
|
||||
public:
|
||||
void loadStyle(u16 styleIdx);
|
||||
f32 getFloat(s32 idx) const;
|
||||
bool getFlag(s32 idx) const;
|
||||
|
||||
// TODO: Probably wrong
|
||||
CamStyle(const UNKWORD &u1, const UNKWORD &u2, f32 *pFloats, s32 numFloats, u16 *pFlags, s32 numFlags)
|
||||
: field_0x08(u1),
|
||||
mpFloats(pFloats),
|
||||
mpParamFloats(pFloats),
|
||||
mNumFloats(numFloats),
|
||||
mpFlags(pFlags),
|
||||
mpParamFlags(pFlags),
|
||||
mNumFlags(numFlags),
|
||||
field_0x18(u1) {
|
||||
mId[0] = '?';
|
||||
// TODO maybe implicitly generated
|
||||
mId[4] = '\0';
|
||||
mId[3] = '\0';
|
||||
mId[2] = '\0';
|
||||
mId[1] = '\0';
|
||||
mStyleIndex = -1;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x00 */ u8 mId[5];
|
||||
/* 0x06 */ u16 mStyleIndex;
|
||||
/* 0x08 */ UNKWORD field_0x08;
|
||||
/* 0x0C */ f32 *mpFloats;
|
||||
/* 0x10 */ const f32 *mpParamFloats;
|
||||
/* 0x14 */ s32 mNumFloats;
|
||||
/* 0x18 */ UNKWORD field_0x18;
|
||||
/* 0x1C */ u16 *mpFlags;
|
||||
/* 0x20 */ const u16 *mpParamFlags;
|
||||
/* 0x24 */ s32 mNumFlags;
|
||||
};
|
||||
|
||||
class dCameraGame_c : public dCameraBase_c {
|
||||
public:
|
||||
static bool initCamParamDat();
|
||||
static s32 getTrendIndex(const char *name);
|
||||
static s32 getStyleIndex(u32 id);
|
||||
|
||||
static s32 sTrendIdxes[CAM_TREND_IDX_MAX];
|
||||
static s32 sStyleIdxes[CAM_STYLE_IDX_MAX];
|
||||
|
||||
static const CamParamStyle *getStyle(s32 idx) {
|
||||
return &sStyles[idx];
|
||||
}
|
||||
|
||||
static const f32 *getFloats(s32 idx) {
|
||||
return &sFloats[idx];
|
||||
}
|
||||
|
||||
static const u16 *getFlags(s32 idx) {
|
||||
return &sFlags[idx];
|
||||
}
|
||||
|
||||
dCameraGame_c();
|
||||
/* vt 0x08 */ virtual void onBecomeActive() override;
|
||||
/* vt 0x0C */ virtual void onBecomeInactive() override;
|
||||
/* vt 0x10 */ virtual bool create() override;
|
||||
/* vt 0x14 */ virtual bool remove() override;
|
||||
/* vt 0x18 */ virtual bool execute() override;
|
||||
/* vt 0x1C */ virtual bool draw() override;
|
||||
/* vt 0x20 */ virtual ~dCameraGame_c() {}
|
||||
/* vt 0x30 */ virtual void setView(const CamView &view) override;
|
||||
|
||||
CamId getCamId0x60() {
|
||||
return field_0x060;
|
||||
}
|
||||
|
||||
bool getField_0x078() const {
|
||||
return field_0x078;
|
||||
}
|
||||
|
||||
f32 getField_0x0AC() const {
|
||||
return field_0x0AC;
|
||||
}
|
||||
|
||||
void clearCamIds();
|
||||
|
||||
bool isCurrentTrend(const char *name) const;
|
||||
|
||||
void onFlag(u32 flag) {
|
||||
mFlags |= flag;
|
||||
}
|
||||
|
||||
void offFlag(u32 flag) {
|
||||
mFlags &= ~flag;
|
||||
}
|
||||
|
||||
void overrideCam(s32 camId, s32 priority, s16 roomId, bool unk);
|
||||
|
||||
private:
|
||||
CamId getCamId();
|
||||
void setCam(const CamId &id);
|
||||
void setCam(s16 roomCamId, s16 roomId);
|
||||
|
||||
static void cacheIdxes();
|
||||
|
||||
static CamParamHeader *sHeader;
|
||||
static f32 *sFloats;
|
||||
static u16 *sFlags;
|
||||
static CamParamStyle *sStyles;
|
||||
static CamParamTrend *sTrends;
|
||||
|
||||
/* 0x02C */ dPolar field_0x02C;
|
||||
/* 0x038 */ CamView mView2;
|
||||
/* 0x058 */ u32 mFlags;
|
||||
/* 0x05C */ UNKWORD field_0x05C;
|
||||
/* 0x060 */ CamId field_0x060;
|
||||
/* 0x068 */ s32 mCurrentTrendIdx;
|
||||
/* 0x06C */ UNKWORD field_0x06C;
|
||||
/* 0x070 */ UNKWORD field_0x070;
|
||||
/* 0x074 */ UNKWORD field_0x074;
|
||||
/* 0x078 */ bool field_0x078;
|
||||
/* 0x079 */ u8 field_0x079;
|
||||
/* 0x07A */ u8 field_0x07A;
|
||||
/* 0x07C */ UNKWORD field_0x07C;
|
||||
/* 0x080 */ CamId field_0x080;
|
||||
/* 0x086 */ CamId field_0x086;
|
||||
/* 0x08C */ UNKWORD field_0x08C;
|
||||
/* 0x090 */ UNKWORD field_0x090;
|
||||
/* 0x094 */ s16 field_0x094;
|
||||
/* 0x096 */ s16 field_0x096;
|
||||
/* 0x098 */ dAcObjBase_c *field_0x098;
|
||||
/* 0x09C */ dAcRef_c<dAcObjBase_c> mRef;
|
||||
/* 0x0A8 */ UNKWORD field_0x0A8;
|
||||
/* 0x0AC */ f32 field_0x0AC;
|
||||
/* 0x0B0 */ f32 field_0x0B0;
|
||||
/* 0x0B4 */ UnkCamChecks mChk;
|
||||
/* 0x22C */ UNKWORD field_0x22C;
|
||||
/* 0x230 */ UNKWORD field_0x230;
|
||||
/* 0x234 */ mVec3_c field_0x234;
|
||||
/* 0x240 */ mVec3_c field_0x240;
|
||||
/* 0x24C */ u8 _0x24C[0x264 - 0x24C];
|
||||
/* 0x264 */ f32 field_0x264;
|
||||
/* 0x268 */ f32 field_0x268;
|
||||
/* 0x26C */ u8 _0x0[0x474 - 0x26C];
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,48 @@
|
||||
#ifndef TO_BE_SORTED_D_CAMERA_MAP_H
|
||||
#define TO_BE_SORTED_D_CAMERA_MAP_H
|
||||
|
||||
#include "common.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "toBeSorted/d_camera_base.h"
|
||||
|
||||
class dAcObjBase_c;
|
||||
|
||||
class dCameraMap_c : public dCameraBase_c {
|
||||
public:
|
||||
dCameraMap_c() : field_0xC4(0.0f) {}
|
||||
/* vt 0x08 */ virtual void onBecomeActive() override;
|
||||
/* vt 0x0C */ virtual void onBecomeInactive() override;
|
||||
/* vt 0x10 */ virtual bool create() override;
|
||||
/* vt 0x14 */ virtual bool remove() override;
|
||||
/* vt 0x18 */ virtual bool execute() override;
|
||||
/* vt 0x1C */ virtual bool draw() override;
|
||||
/* vt 0x20 */ virtual ~dCameraMap_c() {}
|
||||
/* vt 0x30 */ virtual void setView(const CamView &view) override;
|
||||
// Not sure what this is...
|
||||
/* vt 0x34 */ virtual bool vt_0x34();
|
||||
|
||||
void fn_80093340();
|
||||
void setNoCameraTransition();
|
||||
void setCameraTransition();
|
||||
bool isActiveOrAnimating() const;
|
||||
void startOut();
|
||||
|
||||
private:
|
||||
/* 0x2C */ mVec3_c field_0x2C;
|
||||
/* 0x38 */ f32 field_0x38;
|
||||
/* 0x3C */ f32 field_0x3C;
|
||||
/* 0x40 */ f32 field_0x40;
|
||||
/* 0x44 */ dAcObjBase_c *field_0x44;
|
||||
/* 0x48 */ CamView mView1;
|
||||
/* 0x68 */ CamView mSourceView;
|
||||
/* 0x88 */ CamView mTargetView;
|
||||
/* 0xA8 */ u8 _0xA8[0xAC - 0xA8];
|
||||
/* 0xAC */ bool mIsMovingOut;
|
||||
/* 0xB0 */ UNKWORD field_0xB0;
|
||||
/* 0xB4 */ bool mIsActiveOrAnimating;
|
||||
/* 0xB8 */ s32 mTimer;
|
||||
/* 0xBC */ u8 _0xBC[0xC4 - 0xBC];
|
||||
/* 0xC4 */ f32 field_0xC4;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,54 @@
|
||||
#ifndef TOBESORTED_D_CAMERA_MATH_H
|
||||
#define TOBESORTED_D_CAMERA_MATH_H
|
||||
|
||||
#include "common.h"
|
||||
#include "m/m_angle.h"
|
||||
#include "m/m_vec.h"
|
||||
|
||||
class dAcObjBase_c;
|
||||
|
||||
/**
|
||||
* @brief A function that looks like an ease-in tween.
|
||||
*
|
||||
* @param arg The time argument in [0, 1]
|
||||
* @param param The power of the easing function. 0 = linear, 1 = quite powerful
|
||||
* @return f32 The result in [0, 1]
|
||||
*/
|
||||
f32 camEaseIn(f32 arg, f32 param);
|
||||
|
||||
/**
|
||||
* @brief A function that looks like an ease-in-out tween.
|
||||
*
|
||||
* @param arg The time argument in [0, 1]
|
||||
* @param param The power of the easing function. 0 = linear, 1 = a little bit
|
||||
* @return f32 The result in [0, 1]
|
||||
*/
|
||||
f32 camEaseInOut(f32 arg, f32 param);
|
||||
|
||||
/**
|
||||
* @brief Get a point on the line from origin to target that is as
|
||||
* far away from origin as point is away from origin.
|
||||
*/
|
||||
mVec3_c camGetPointOnLine(const mVec3_c &target, const mVec3_c &origin, const mVec3_c &point);
|
||||
|
||||
/**
|
||||
* @brief Get a point relative to ac's position. localOffset is rotated by the actor's XY rotation first.
|
||||
*/
|
||||
mVec3_c camOffsetPoint(dAcObjBase_c *ac, const mVec3_c &localOffset);
|
||||
|
||||
/**
|
||||
* @brief Like the other camOffsetPoint, but with an explicitly passed rotation.
|
||||
*/
|
||||
mVec3_c camOffsetPoint(dAcObjBase_c *ac, const mVec3_c &localOffset, const mAng3_c &rot);
|
||||
|
||||
/**
|
||||
* @brief The inverse of camOffsetPoint
|
||||
*/
|
||||
mVec3_c camPointToLocal(dAcObjBase_c *ac, const mVec3_c &pos);
|
||||
|
||||
/**
|
||||
* @brief The inverse of camOffsetPoint
|
||||
*/
|
||||
mVec3_c camPointToLocal(dAcObjBase_c *ac, const mVec3_c &pos, const mAng3_c &rot);
|
||||
|
||||
#endif
|
||||
@@ -43,6 +43,7 @@ public:
|
||||
|
||||
struct dPolar {
|
||||
public:
|
||||
dPolar() : R(0.0f), U(0.0f), V(0.0f) {}
|
||||
dPolar(f32 r, f32 u, f32 v);
|
||||
dPolar(const mVec3_c &v);
|
||||
|
||||
|
||||
@@ -3095,12 +3095,12 @@ void dAcBlastboss_c::executeLightningStrike() {
|
||||
field_0x2CFC = 60.0f;
|
||||
mLightingStrikeState = LIGHTNING_STRIKE_DEMO;
|
||||
// huh
|
||||
field_0x2D10.x = cam->getField_0x78().x;
|
||||
field_0x2D10.y = cam->getField_0x78().y;
|
||||
field_0x2D10.z = cam->getField_0x78().z;
|
||||
field_0x2D04.x = cam->getPositionMaybe().x;
|
||||
field_0x2D04.y = cam->getPositionMaybe().y;
|
||||
field_0x2D04.z = cam->getPositionMaybe().z;
|
||||
field_0x2D10.x = cam->getTarget().x;
|
||||
field_0x2D10.y = cam->getTarget().y;
|
||||
field_0x2D10.z = cam->getTarget().z;
|
||||
field_0x2D04.x = cam->getPosition().x;
|
||||
field_0x2D04.y = cam->getPosition().y;
|
||||
field_0x2D04.z = cam->getPosition().z;
|
||||
mIsPhaseTwo = -1;
|
||||
// fall-through
|
||||
} else {
|
||||
@@ -3303,7 +3303,7 @@ void dAcBlastboss_c::executeLightningStrike() {
|
||||
f32 fac = val * 3.0f;
|
||||
tmp1.y += mAng(val * 0x1C20).cos() * fac;
|
||||
}
|
||||
cam->fn_8019EA00(tmp1, field_0x2D04, field_0x2CFC, 0.0f);
|
||||
cam->setEventCamView(tmp1, field_0x2D04, field_0x2CFC, 0.0f);
|
||||
if (b2) {
|
||||
mtx1.transS(0.5f, 0.5f, 0.0f);
|
||||
// REGSWAP
|
||||
@@ -3315,11 +3315,11 @@ void dAcBlastboss_c::executeLightningStrike() {
|
||||
}
|
||||
|
||||
if (field_0x114C != 0) {
|
||||
mtx.YrotS(cam->fn_8019E3B0());
|
||||
mtx.YrotS(cam->getXZAngle());
|
||||
v.set(0.0f, 10.0f, 10000.0f);
|
||||
MTXMultVec(mtx, v, v);
|
||||
v.x += cam->getPositionMaybe().x;
|
||||
v.z += cam->getPositionMaybe().z;
|
||||
v.x += cam->getPosition().x;
|
||||
v.z += cam->getPosition().z;
|
||||
mtx.transS(v);
|
||||
v.set(0.7f, 0.7f, 0.7f);
|
||||
mThunderMdl.setScale(v);
|
||||
|
||||
@@ -1436,7 +1436,7 @@ void dAcEsm_c::fn_187_6C20(bool param0) {
|
||||
|
||||
if (!param0) {
|
||||
dCamera_c *cam = dScGame_c::getCamera(0);
|
||||
mAngle.y = cLib::targetAngleY(cam->getPositionMaybe(), cam->getField_0x78());
|
||||
mAngle.y = cLib::targetAngleY(cam->getPosition(), cam->getTarget());
|
||||
mAngle.y += cM::rndFX(16384.f);
|
||||
}
|
||||
|
||||
|
||||
@@ -570,7 +570,7 @@ void dAcOsoil_c::handleModelsOpacities() {
|
||||
if (dAcPy_c::LINK->mPosition.squareDistance(mPosition) < 1000000.f) {
|
||||
dCamera_c* camera = dScGame_c::getCamera();
|
||||
if (camera != nullptr) {
|
||||
f32 dist = (camera->getPositionMaybe() - mPosition).y * (1.f / 80.f);
|
||||
f32 dist = (camera->getPosition() - mPosition).y * (1.f / 80.f);
|
||||
if (dist < 0.1f) {
|
||||
dist = 0.f;
|
||||
} else if (dist > 1) {
|
||||
|
||||
@@ -39,7 +39,6 @@ int dTgGateToGround_c::doDelete() {
|
||||
|
||||
int dTgGateToGround_c::actorExecute() {
|
||||
dAcPy_c *player;
|
||||
dCamera_c *cam;
|
||||
|
||||
if (params_FF_FF_00_00 != -1 && StoryflagManager::sInstance->getCounterOrFlag(params_FF_FF_00_00) == 0) {
|
||||
return SUCCEEDED;
|
||||
@@ -57,8 +56,8 @@ int dTgGateToGround_c::actorExecute() {
|
||||
}
|
||||
} else {
|
||||
if (params_00_00_00_FF != -1) {
|
||||
cam = dScGame_c::getCamera(0);
|
||||
fn_80080960(cam->getField_0xD98(), params_00_00_00_FF, 0, mRoomID, 0);
|
||||
// TODO Cast is maybe fake but I can't get overrideCam to match otherwise
|
||||
dScGame_c::getCamera(0)->getGameCam1()->overrideCam(params_00_00_00_FF, 0, (u16)mRoomID, false);
|
||||
}
|
||||
delayFrames = 0;
|
||||
}
|
||||
|
||||
@@ -76,8 +76,8 @@ void dSporeProc_c::execute() {
|
||||
mVec3_c camPos;
|
||||
mVec3_c camTowards;
|
||||
|
||||
camPos = pCam->getPositionMaybe();
|
||||
camTowards = pCam->getField_0x78() - camPos;
|
||||
camPos = pCam->getPosition();
|
||||
camTowards = pCam->getTarget() - camPos;
|
||||
|
||||
if (pCam != nullptr && camTowards.normalizeRS()) {
|
||||
mVec3_c v;
|
||||
@@ -158,9 +158,9 @@ void dSporeProc_c::execute() {
|
||||
mSporesPos[i] += point * (field_0x12D8[i] * 5.f);
|
||||
}
|
||||
|
||||
f32 camY = pCam->getField_0x2A8();
|
||||
if (end != camY && mSporesPos[i].y < camY) {
|
||||
mSporesPos[i].y = camY;
|
||||
f32 waterHeight = pCam->getWaterHeight();
|
||||
if (end != waterHeight && mSporesPos[i].y < waterHeight) {
|
||||
mSporesPos[i].y = waterHeight;
|
||||
}
|
||||
} break;
|
||||
}
|
||||
@@ -212,7 +212,7 @@ void dSporeProc_c::drawXlu() {
|
||||
);
|
||||
|
||||
dCamera_c *pCam = dScGame_c::getCamera();
|
||||
mVec3_c pos = pCam->getPositionMaybe();
|
||||
mVec3_c pos = pCam->getPosition();
|
||||
|
||||
if (dTgSiren_c::isOutOfTime()) {
|
||||
color0.r = 0xFF;
|
||||
|
||||
@@ -119,7 +119,7 @@ void dTgTumbleWeed_c::doSpawnTumbleweed() {
|
||||
pos.rotY(angle);
|
||||
|
||||
pos *= 600.f;
|
||||
pos += pCam->getPositionMaybe();
|
||||
pos += pCam->getPosition();
|
||||
|
||||
if (dBgS_ObjGndChk::CheckPos(pos + mVec3_c::Ey * 100.f)) {
|
||||
pos.y = dBgS_ObjGndChk::GetGroundHeight() + 10.f;
|
||||
|
||||
@@ -401,7 +401,7 @@ void dBgS_Acch::LineCheck(dBgS &bgs) {
|
||||
} while (i < GetTblSize());
|
||||
}
|
||||
|
||||
extern "C" void *fn_80359C80(dBgS_SphChk *, cBgD_Vtx_t *, int, int, int, cM3dGPla *, void *);
|
||||
extern "C" void fn_80359C80(dBgS_SphChk *, cBgD_Vtx_t *, int, int, int, cM3dGPla *, void *);
|
||||
|
||||
void dBgS_Acch::SphCheck() {
|
||||
f32 height = field_0x1D0;
|
||||
|
||||
@@ -98,11 +98,10 @@ u32 dCcS::ProcAtTgHitmark(cCcD_Obj *, cCcD_Obj *, mVec3_c *, u32, mVec3_c *) {}
|
||||
|
||||
void dCcS::SetAtTgObjInf(bool, bool, cCcD_Obj *, cCcD_Obj *, mVec3_c *, bool) {}
|
||||
|
||||
bool dCcS::ChkCamera(mVec3_c &, mVec3_c &, dAcObjBase_c *, dAcObjBase_c *, dAcObjBase_c *, f32) {}
|
||||
bool dCcS::ChkCamera(mVec3_c &, mVec3_c &, f32, dAcObjBase_c *, dAcObjBase_c *, dAcObjBase_c *) {}
|
||||
|
||||
bool dCcS::ChkCameraPoint(
|
||||
const mVec3_c &, const mVec3_c &, mVec3_c &, dAcObjBase_c *, dAcObjBase_c *, dAcObjBase_c *, f32
|
||||
) {}
|
||||
bool dCcS::
|
||||
ChkCameraPoint(const mVec3_c &, const mVec3_c &, mVec3_c &, f32, dAcObjBase_c *, dAcObjBase_c *, dAcObjBase_c *) {}
|
||||
|
||||
bool dCcS::ChkCo(const mVec3_c &, dAcObjBase_c *) {}
|
||||
|
||||
|
||||
@@ -0,0 +1,591 @@
|
||||
#include "d/d_camera.h"
|
||||
|
||||
#include "c/c_math.h"
|
||||
#include "common.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/col/bg/d_bg_s_gnd_chk.h"
|
||||
#include "d/col/bg/d_bg_s_lin_chk.h"
|
||||
#include "d/col/bg/d_bg_s_roof_chk.h"
|
||||
#include "d/d_gfx.h"
|
||||
#include "d/d_pad.h"
|
||||
#include "d/d_sc_game.h"
|
||||
#include "d/d_stage_mgr.h"
|
||||
#include "d/snd/d_snd_3d_manager.h"
|
||||
#include "egg/gfx/eggFrustum.h"
|
||||
#include "egg/math/eggMatrix.h"
|
||||
#include "f/f_base.h"
|
||||
#include "f/f_profile.h"
|
||||
#include "m/m_angle.h"
|
||||
#include "m/m_mtx.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/g3d/g3d_camera.h"
|
||||
#include "toBeSorted/d_camera_base.h"
|
||||
#include "toBeSorted/d_camera_math.h"
|
||||
#include "toBeSorted/event_manager.h"
|
||||
|
||||
class dCamera_HIO_c {
|
||||
public:
|
||||
dCamera_HIO_c();
|
||||
virtual ~dCamera_HIO_c();
|
||||
|
||||
/* 0x04 */ f32 field_0x04;
|
||||
/* 0x08 */ f32 field_0x08;
|
||||
/* 0x0C */ f32 field_0x0C;
|
||||
/* 0x10 */ s16 field_0x10;
|
||||
/* 0x12 */ s16 field_0x12;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ u16 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1C;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ s16 field_0x24;
|
||||
/* 0x28 */ f32 field_0x28;
|
||||
/* 0x2C */ f32 field_0x2C;
|
||||
/* 0x30 */ s16 field_0x30;
|
||||
};
|
||||
|
||||
dCamera_HIO_c::~dCamera_HIO_c() {}
|
||||
dCamera_HIO_c::dCamera_HIO_c() {
|
||||
field_0x04 = 1.0f;
|
||||
field_0x08 = 240000.0f;
|
||||
field_0x14 = 0.1f;
|
||||
field_0x18 = 0x1555;
|
||||
field_0x1C = 30.0f;
|
||||
field_0x20 = 30.0f;
|
||||
field_0x24 = 8;
|
||||
field_0x28 = 0.7f;
|
||||
field_0x2C = 0.2f;
|
||||
field_0x30 = 0;
|
||||
field_0x0C = 1.0f;
|
||||
field_0x10 = 1;
|
||||
field_0x12 = 1;
|
||||
}
|
||||
|
||||
static dCamera_HIO_c sHio;
|
||||
|
||||
SPECIAL_BASE_PROFILE(CAMERA, dCamera_c, fProfile::CAMERA, 0xA, 0x30);
|
||||
|
||||
void debugWarn2(const char *fmt, ...);
|
||||
void debugPrintf7(const char *fmt, ...);
|
||||
|
||||
dCamera_c::dCamera_c()
|
||||
: mMyCameraIndex(0),
|
||||
mpScreen(dStageMgr_c::GetInstance()->getScreen(0)),
|
||||
mYAngle(0),
|
||||
mXZAngle(0),
|
||||
field_0x1F8(0),
|
||||
field_0x1FC(0),
|
||||
mFlags(0) {
|
||||
mScreenShaker.init(this);
|
||||
field_0xDC0.setCamera(this);
|
||||
field_0x08C = mVec3_c(0.0f, 1.0f, 0.0f);
|
||||
|
||||
mActiveCameraIdx = 0;
|
||||
for (int i = 0; i < CAM_MAX; i++) {
|
||||
mpCameras[i] = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
int dCamera_c::create() {
|
||||
mFlags = 0;
|
||||
mMyCameraIndex = getFromParams(0, 0xF);
|
||||
dScGame_c::setCamera(mMyCameraIndex, nullptr);
|
||||
mpCameras[CAM_GAME_0] = &mGameCam1;
|
||||
mpCameras[CAM_GAME_1] = &mGameCam2;
|
||||
mpCameras[CAM_EVENT] = &mEventCam;
|
||||
mpCameras[CAM_MAP] = &mMapCam;
|
||||
|
||||
for (int i = 0; i < CAM_MAX; i++) {
|
||||
if (mpCameras[i] == nullptr) {
|
||||
continue;
|
||||
}
|
||||
if (!mpCameras[i]->doCreate(i)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
}
|
||||
|
||||
debugWarn2("u can NOT use debug camera!!"); // aww
|
||||
mActiveCameraIdx = 0;
|
||||
|
||||
mpCameras[0]->activate();
|
||||
|
||||
mLetterboxAmount = getEventLetterboxAmount();
|
||||
field_0x290 = 1.0f;
|
||||
onFlag(CAM_FLAGS_IN_EVENT);
|
||||
|
||||
// TODO maybe struct + inline
|
||||
mGlobalAlpha = 1.0f;
|
||||
field_0x298 = field_0x299 = 0;
|
||||
|
||||
field_0x29C = 1.0f;
|
||||
field_0x2A0 = field_0x2A1 = 0;
|
||||
|
||||
mView1 = mpCameras[mActiveCameraIdx]->getView();
|
||||
|
||||
field_0xDCC = false;
|
||||
mYAngle = 0;
|
||||
mXZAngle = 0;
|
||||
|
||||
dScGame_c::setCamera(mMyCameraIndex, this);
|
||||
updateView();
|
||||
apply();
|
||||
|
||||
const STIF *stif = dStageMgr_c::GetInstance()->getStif();
|
||||
if (stif != nullptr) {
|
||||
sHio.field_0x04 = stif->field_0x00;
|
||||
sHio.field_0x08 = stif->field_0x04;
|
||||
}
|
||||
|
||||
field_0x1FC = 0;
|
||||
if ((dScGame_c::isCurrentStage("F000") && 26 <= dScGame_c::currentSpawnInfo.layer &&
|
||||
dScGame_c::currentSpawnInfo.layer <= 28) ||
|
||||
dScGame_c::isInCredits() || dScGame_c::isSeekerStoneStageAndLayer()) {
|
||||
onFlag(CAM_FLAGS_NO_LETTERBOX_IN_EVENT);
|
||||
dScGame_c::GetInstance()->setTargetingScreenLetterboxAmount(0.0f);
|
||||
}
|
||||
|
||||
debugPrintf7("create ok!!");
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
// Maybe inlines that couldn't be inlined due to variadics...
|
||||
void debugWarn2(const char *fmt, ...) {
|
||||
// no-op
|
||||
}
|
||||
|
||||
void debugPrintf7(const char *fmt, ...) {
|
||||
// no-op
|
||||
}
|
||||
|
||||
int dCamera_c::doDelete() {
|
||||
debugPrintf7("delete!!");
|
||||
for (int i = 0; i < CAM_MAX; i++) {
|
||||
// No null check needed :)
|
||||
mpCameras[i]->doRemove();
|
||||
}
|
||||
dScGame_c::setCamera(mMyCameraIndex, nullptr);
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
void dCamera_c::setWorldOffset(f32 x, f32 z) {
|
||||
mView.mPosition.x += x;
|
||||
mView.mPosition.z += z;
|
||||
mView.mTarget.x += x;
|
||||
mView.mTarget.z += z;
|
||||
// TODO maybe inline
|
||||
getGameCam1()->setView(mView);
|
||||
getGameCam1()->onFlag(0x1);
|
||||
getGameCam1()->onFlag(0x4000);
|
||||
updateView();
|
||||
apply();
|
||||
}
|
||||
|
||||
int dCamera_c::execute() {
|
||||
dAcPy_c *link = dAcPy_c::GetLinkM();
|
||||
|
||||
checkCameraChange();
|
||||
|
||||
for (int i = 0; i < CAM_MAX; i++) {
|
||||
if (mpCameras[i] != nullptr) {
|
||||
mpCameras[i]->doExecute();
|
||||
}
|
||||
}
|
||||
|
||||
if (mActiveCameraIdx == CAM_EVENT) {
|
||||
// hmmmm
|
||||
static_cast<dCameraGame_c *>(mpCameras[0])->clearCamIds();
|
||||
}
|
||||
|
||||
updateView();
|
||||
apply();
|
||||
field_0xDC0.fn_8019E940();
|
||||
|
||||
field_0xDCC = false;
|
||||
if (mActiveCameraIdx == CAM_EVENT) {
|
||||
onFlag(CAM_FLAGS_IN_EVENT);
|
||||
}
|
||||
|
||||
if (checkFlag(CAM_FLAGS_0x100 | CAM_FLAGS_IN_EVENT)) {
|
||||
field_0x290 += (1.0f / sHio.field_0x24);
|
||||
if (field_0x290 > 1.0f) {
|
||||
field_0x290 = 1.0f;
|
||||
}
|
||||
} else {
|
||||
field_0x290 = field_0x290 - (1.0f / sHio.field_0x24);
|
||||
if (field_0x290 < 0.0f) {
|
||||
field_0x290 = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
f32 scale = checkFlag(CAM_FLAGS_IN_EVENT) != 0 ? getEventLetterboxAmount() : sHio.field_0x20;
|
||||
f32 target = camEaseInOut(field_0x290, 1.0f);
|
||||
mLetterboxAmount += (target * scale - mLetterboxAmount) * 0.5f;
|
||||
|
||||
if (mActiveCameraIdx == CAM_EVENT && checkFlag(CAM_FLAGS_NO_LETTERBOX_IN_EVENT) != 0) {
|
||||
mLetterboxAmount = 0.0f;
|
||||
}
|
||||
|
||||
dScGame_c::GetInstance()->setTargetingScreenLetterboxAmount(mLetterboxAmount);
|
||||
offFlag(CAM_FLAGS_0x100 | CAM_FLAGS_IN_EVENT);
|
||||
|
||||
if (!link->checkActionFlagsCont(0x400000)) {
|
||||
field_0x299 = 0;
|
||||
}
|
||||
|
||||
f32 alphaTarget;
|
||||
f32 alphaUpdateSpeed = sHio.field_0x2C;
|
||||
if (EventManager::isInEvent()) {
|
||||
alphaUpdateSpeed = 1.0f;
|
||||
if (field_0x2A1 != 0) {
|
||||
alphaTarget = field_0x2A0 ? sHio.field_0x28 : 0.0f;
|
||||
} else {
|
||||
alphaTarget = 1.0f;
|
||||
}
|
||||
} else {
|
||||
if (field_0x299 != 0) {
|
||||
alphaTarget = field_0x298 ? sHio.field_0x28 : 0.0f;
|
||||
} else {
|
||||
alphaTarget = 1.0f;
|
||||
}
|
||||
}
|
||||
|
||||
mGlobalAlpha += alphaUpdateSpeed * (alphaTarget - mGlobalAlpha);
|
||||
dStageMgr_c::GetInstance()->setGlobalAlpha((u8)(mGlobalAlpha * 255.1f) & 0xFF);
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
void dCamera_c::checkCameraChange() {
|
||||
offFlag(CAM_FLAGS_0x10);
|
||||
if (checkFlag(CAM_FLAGS_0x4)) {
|
||||
getGameCam1()->onFlag(0x400);
|
||||
offFlag(CAM_FLAGS_0x4);
|
||||
}
|
||||
|
||||
if (checkFlag(CAM_FLAGS_MAP) && mActiveCameraIdx == CAM_MAP && !mMapCam.isActiveOrAnimating()) {
|
||||
offFlag(CAM_FLAGS_MAP);
|
||||
onFlag(CAM_FLAGS_0x4);
|
||||
getGameCam1()->onFlag(0x10000);
|
||||
debugPrintf7("off map");
|
||||
}
|
||||
|
||||
if (EventManager::isInEvent()) {
|
||||
onFlag(CAM_FLAGS_EVENT);
|
||||
offFlag(CAM_FLAGS_MAP);
|
||||
} else {
|
||||
offFlag(CAM_FLAGS_EVENT);
|
||||
}
|
||||
|
||||
if (checkFlag(CAM_FLAGS_EVENT)) {
|
||||
if (mActiveCameraIdx != CAM_EVENT) {
|
||||
setActiveCamera(CAM_EVENT);
|
||||
}
|
||||
} else if (checkFlag(CAM_FLAGS_MAP)) {
|
||||
if (mActiveCameraIdx != CAM_MAP) {
|
||||
setActiveCamera(CAM_MAP);
|
||||
}
|
||||
} else {
|
||||
if (mActiveCameraIdx != CAM_GAME_0) {
|
||||
setActiveCamera(CAM_GAME_0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void dCamera_c::updateView() {
|
||||
if (field_0xDCC) {
|
||||
mView = mView1;
|
||||
field_0xDCC = 0;
|
||||
} else {
|
||||
mView = mpCameras[mActiveCameraIdx]->getView();
|
||||
}
|
||||
|
||||
mVec3_c dir = mView.mTarget - mView.mPosition;
|
||||
mYAngle = cM::atan2s(dir.y, dir.absXZ());
|
||||
mXZAngle = cM::atan2s(dir.x, dir.z);
|
||||
}
|
||||
|
||||
int dCamera_c::draw() {
|
||||
if (mpCameras[mActiveCameraIdx] != nullptr) {
|
||||
mpCameras[mActiveCameraIdx]->doDraw();
|
||||
}
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
bool dCamera_c::isUnderwater() const {
|
||||
return checkFlag(CAM_FLAGS_UNDERWATER);
|
||||
}
|
||||
|
||||
void dCamera_c::apply() {
|
||||
updateUnderwaterDepth(mView.mPosition);
|
||||
if (isUnderwater_()) {
|
||||
onFlag(CAM_FLAGS_UNDERWATER);
|
||||
} else {
|
||||
offFlag(CAM_FLAGS_UNDERWATER);
|
||||
}
|
||||
|
||||
if (mScreenShaker.execute()) {
|
||||
mView.mPosition += mScreenShaker.getShakeOffset();
|
||||
mView.mTarget += mScreenShaker.getShakeOffset();
|
||||
}
|
||||
|
||||
mLookAtCamera.mPos = mView.mPosition;
|
||||
mLookAtCamera.mAt = mView.mTarget;
|
||||
if (mLookAtCamera.mAt.x == mLookAtCamera.mPos.x && mLookAtCamera.mAt.z == mLookAtCamera.mPos.z) {
|
||||
mLookAtCamera.mPos.z += 1.0f;
|
||||
}
|
||||
mLookAtCamera.mUp = mVec3_c::Ey;
|
||||
mLookAtCamera.doUpdateMatrix();
|
||||
mMtx.copyFrom(mLookAtCamera.getViewMatrix());
|
||||
// TODO: Maybe mutating mtx wasn't intended here but it's probably unproblematic
|
||||
mMtx.inverse();
|
||||
mMtxInv = mMtx;
|
||||
mMtxInv.m[0][3] = 0.0f;
|
||||
mMtxInv.m[1][3] = 0.0f;
|
||||
mMtxInv.m[2][3] = 0.0f;
|
||||
|
||||
dSnd3DManager_c::GetInstance()->updateFromCamera(mLookAtCamera);
|
||||
applyTilt();
|
||||
setFrustum(mView.mFov, sHio.field_0x04, sHio.field_0x08);
|
||||
nw4r::g3d::Camera cam = dStageMgr_c::GetInstance()->getCamera(mMyCameraIndex);
|
||||
mpScreen->CopyToG3D(cam);
|
||||
mLookAtCamera.setG3DCamera(cam);
|
||||
}
|
||||
|
||||
s32 dCamera_c::setActiveCamera(s32 newCamIdx) {
|
||||
if (mpCameras[newCamIdx] == nullptr) {
|
||||
return mActiveCameraIdx;
|
||||
} else if (mActiveCameraIdx == newCamIdx) {
|
||||
return newCamIdx;
|
||||
} else {
|
||||
for (int i = 0; i < CAM_MAX; i++) {
|
||||
mpCameras[i]->deactivate();
|
||||
}
|
||||
mpCameras[newCamIdx]->activate();
|
||||
debugPrintf7("unit %d -> %d", mActiveCameraIdx, newCamIdx);
|
||||
mActiveCameraIdx = newCamIdx;
|
||||
return newCamIdx;
|
||||
}
|
||||
}
|
||||
|
||||
f32 dCamera_c::getEventLetterboxAmount() {
|
||||
return sHio.field_0x1C;
|
||||
}
|
||||
|
||||
void dCamera_c::setFrustum(f32 fov, f32 near, f32 far) {
|
||||
if (dGfx_c::isTvMode4To3()) {
|
||||
mpScreen->Reset(
|
||||
0.0f, dGfx_c::getEFBHeightDifferenceF(), dGfx_c::getCurrentScreenWidthF(), dGfx_c::getHeightScaledF(),
|
||||
mpScreen->GetCanvasMode()
|
||||
);
|
||||
} else {
|
||||
mpScreen->Reset(
|
||||
0.0f, 0.0f, dGfx_c::getCurrentScreenWidthF(), dGfx_c::getCurrentScreenHeightF(), mpScreen->GetCanvasMode()
|
||||
);
|
||||
if (dGfx_c::isTvMode4To3()) {
|
||||
// Unreachable...
|
||||
fov *= sHio.field_0x0C;
|
||||
}
|
||||
}
|
||||
|
||||
mpScreen->SetProjectionType(EGG::Frustum::PROJ_PERSP);
|
||||
mpScreen->SetNearZ(near);
|
||||
mpScreen->SetFarZ(far);
|
||||
mpScreen->SetFovy(fov);
|
||||
|
||||
// Possible fakematch: Either the internals of EGG::Matrix34f allow
|
||||
// copying the data via compiler-generated struct copies (lwz/stw),
|
||||
// or this is really what they did. NSMBW symbols confirm that this function
|
||||
// takes mMtx_c while it's clear that EGG cameras return EGG matrices.
|
||||
mMtx_c mtx = *(mMtx_c *)&mLookAtCamera.getViewMatrix();
|
||||
mFrustum.set(fov, mpScreen->GetAspect(), near, far, mtx);
|
||||
}
|
||||
|
||||
mAng dCamera_c::getYAngle() const {
|
||||
return mYAngle;
|
||||
}
|
||||
|
||||
mAng dCamera_c::getYRot() const {
|
||||
return field_0xDC0.fn_8019E930();
|
||||
}
|
||||
|
||||
mAng dCamera_c::getXZAngle() const {
|
||||
return mXZAngle;
|
||||
}
|
||||
|
||||
bool dCamera_c::fn_8019E3C0() const {
|
||||
if (mActiveCameraIdx == CAM_GAME_0) {
|
||||
return mGameCam1.getField_0x078() == true;
|
||||
} else if (mActiveCameraIdx == CAM_GAME_1) {
|
||||
return mGameCam2.getField_0x078() == true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void dCamera_c::enterMap() {
|
||||
if (!checkFlag(CAM_FLAGS_MAP)) {
|
||||
onFlag(CAM_FLAGS_MAP);
|
||||
}
|
||||
}
|
||||
|
||||
void dCamera_c::leaveMap() {
|
||||
if (checkFlag(CAM_FLAGS_MAP)) {
|
||||
mMapCam.startOut();
|
||||
}
|
||||
}
|
||||
|
||||
void dCamera_c::applyTilt() {
|
||||
EGG::Matrix34f &mtx = mLookAtCamera.getViewMatrix();
|
||||
mMtx_c rotMtx;
|
||||
rotMtx.ZrotS(mAng::fromDeg(-mView.mTilt));
|
||||
MTXConcat(rotMtx, mtx.m, mtx.m);
|
||||
}
|
||||
|
||||
bool dCamera_c::fn_8019E4D0() const {
|
||||
dAcPy_c *link = dAcPy_c::GetLinkM();
|
||||
return !EventManager::isInEvent() && !(link != nullptr && link->checkActionFlagsCont(0x5d7));
|
||||
}
|
||||
|
||||
void dCamera_c::updateUnderwaterDepth(const mVec3_c &pos) {
|
||||
mVec3_c chkPos = pos;
|
||||
dBgS_RoofChk roofChk;
|
||||
roofChk.SetPos(&chkPos);
|
||||
roofChk.SetUnderwaterRoof();
|
||||
roofChk.SetField_0x7C(1);
|
||||
|
||||
f32 f = dBgS::GetInstance()->RoofChk(&roofChk);
|
||||
if (f != 1e9f) {
|
||||
chkPos.y = f;
|
||||
} else {
|
||||
chkPos.y += 10000.0f;
|
||||
}
|
||||
|
||||
dBgS_ObjGndChk_Wtr wtrChk;
|
||||
wtrChk.SetPos(chkPos);
|
||||
f32 waterHeight = dBgS::GetInstance()->GroundCross(&wtrChk);
|
||||
if (waterHeight != 1e9f) {
|
||||
mIsUnderwater = waterHeight > pos.y;
|
||||
mWaterHeight = waterHeight;
|
||||
} else {
|
||||
mIsUnderwater = false;
|
||||
mWaterHeight = -1e9f;
|
||||
}
|
||||
|
||||
if (mIsUnderwater) {
|
||||
mUnderwaterDepth = waterHeight - pos.y;
|
||||
} else {
|
||||
mUnderwaterDepth = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
bool dCamera_c::isUnderwater_() const {
|
||||
return mIsUnderwater;
|
||||
}
|
||||
|
||||
f32 dCamera_c::getUnderwaterDepth() const {
|
||||
return mUnderwaterDepth;
|
||||
}
|
||||
|
||||
bool dCamera_c::screen_shaker::execute() {
|
||||
mShakeOffset = mVec3_c::Zero;
|
||||
bool ret = false;
|
||||
if (mScreenShakeIntensity > 0.001f) {
|
||||
static s32 upOrDown = 0;
|
||||
upOrDown = upOrDown ^ 1;
|
||||
|
||||
f32 f;
|
||||
if (upOrDown) {
|
||||
f = 400.0f;
|
||||
} else {
|
||||
f = -400.0f;
|
||||
}
|
||||
|
||||
mVec3_c shakeOffset(cM::rndFX(100.0f), cM::rndF(f), 0.0f);
|
||||
shakeOffset.normalize();
|
||||
// Note: the difference in coordinates here is due to the camera view using a different
|
||||
// coordinate convention than game code.
|
||||
shakeOffset.rotX(mpCamera->getYAngle());
|
||||
shakeOffset.rotY(mpCamera->getXZAngle());
|
||||
|
||||
mVec3_c chckVector = shakeOffset * (mScreenShakeIntensity + 5.0f);
|
||||
shakeOffset *= mScreenShakeIntensity;
|
||||
mVec3_c pos = mpCamera->getPosition();
|
||||
mVec3_c dest = pos + chckVector;
|
||||
|
||||
dBgS_CamLinChk chk;
|
||||
chk.Set(&pos, &dest, nullptr);
|
||||
|
||||
if (!dBgS::GetInstance()->LineCross(&chk)) {
|
||||
mShakeOffset = shakeOffset;
|
||||
ret = true;
|
||||
}
|
||||
}
|
||||
mScreenShakeIntensity = 0.0f;
|
||||
return ret;
|
||||
}
|
||||
|
||||
mVec3_c dCamera_c::screen_shaker::getShakeOffset() const {
|
||||
return mShakeOffset;
|
||||
}
|
||||
|
||||
void dCamera_c::substruct_1::setCamera(dCamera_c *cam) {
|
||||
mpCamera = cam;
|
||||
}
|
||||
|
||||
void dCamera_c::substruct_1::fn_8019E890() {
|
||||
fn_8019E8D0(mpCamera->getXZAngle());
|
||||
}
|
||||
|
||||
void dCamera_c::substruct_1::fn_8019E8D0(const mAng &ang) {
|
||||
if (!mActive) {
|
||||
mActive = true;
|
||||
field_0x04 = ang;
|
||||
mFSStickAngle = dPad::getFSStickAngle();
|
||||
}
|
||||
}
|
||||
|
||||
mAng dCamera_c::substruct_1::fn_8019E930() const {
|
||||
return field_0x04;
|
||||
}
|
||||
|
||||
void dCamera_c::substruct_1::fn_8019E940() {
|
||||
if (mActive) {
|
||||
mAng angle = mFSStickAngle - dPad::getFSStickAngle();
|
||||
f32 distance = dPad::getFSStickDistance();
|
||||
if (distance < sHio.field_0x14 || mAng::abs(angle) > sHio.field_0x18) {
|
||||
mActive = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!mActive) {
|
||||
field_0x04 = mpCamera->getXZAngle();
|
||||
mFSStickAngle = dPad::getFSStickAngle();
|
||||
}
|
||||
}
|
||||
|
||||
bool dCamera_c::setEventCamView(const mVec3_c &target, const mVec3_c &pos, f32 fov, f32 tilt) {
|
||||
CamView view(pos, target, fov, tilt);
|
||||
getEventCam()->setView(view);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dCamera_c::fn_8019EA70(bool b) {
|
||||
CamView view = getEventCam()->getView();
|
||||
mVec3_c dest;
|
||||
|
||||
dest = camGetPointOnLine(view.mTarget, view.mPosition, dAcPy_c::GetLinkM()->mPositionCopy3);
|
||||
view.mTarget = dest;
|
||||
// TODO maybe inline
|
||||
getGameCam1()->setView(view);
|
||||
getGameCam1()->onFlag(0x1);
|
||||
if (b) {
|
||||
getGameCam1()->onFlag(0x4000);
|
||||
} else {
|
||||
getGameCam1()->offFlag(0x200);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
f32 dCamera_c::fn_8019EB90() {
|
||||
return getGameCam1()->getField_0x0AC();
|
||||
}
|
||||
+1
-1
@@ -476,7 +476,7 @@ bool dFlow_c::handleEventInternal(const MsbFlowInfo *element) {
|
||||
case EVENT_CAMERA_42: {
|
||||
s32 p1 = (params1n2 >> 16) & 0xFFFF;
|
||||
s32 p2 = params1n2 & 0xFFFF;
|
||||
dScGame_c::getCamera(0)->doFn_800918E0(p1, p2);
|
||||
dScGame_c::getCamera(0)->getEventCam()->fn_800918E0(p1, p2);
|
||||
break;
|
||||
}
|
||||
case EVENT_LYT_MINI_GAME: {
|
||||
|
||||
@@ -134,7 +134,7 @@ void dStageMgr_c::initializeState_ReadLayerObjectRes() {
|
||||
parseBzsStageRoom(roomId, bzs);
|
||||
}
|
||||
|
||||
if (dScGame_c::isStateLayerWithSeekerStoneHintMenu()) {
|
||||
if (dScGame_c::isSeekerStoneStageAndLayer()) {
|
||||
mLayoutArcCtrl2.set(sSeekerStoneLayoutArcs, ARRAY_LENGTH(sSeekerStoneLayoutArcs));
|
||||
mLayoutArcCtrl2.load(dHeap::work2Heap.heap);
|
||||
addActorId(fProfile::LYT_SEEKER_STONE);
|
||||
|
||||
+43
-39
@@ -2224,7 +2224,7 @@ static const char *sPriorityGroupNames[] = {
|
||||
};
|
||||
|
||||
void dLytMapMain_c::build() {
|
||||
mIsVisible = 0;
|
||||
mIsVisible = false;
|
||||
field_0x8DB0 = 0;
|
||||
if (dScGame_c::isCurrentStage("F102")) {
|
||||
// awesome but unnecessary
|
||||
@@ -2359,7 +2359,7 @@ void dLytMapMain_c::build() {
|
||||
mAnmGroups[MAP_MAIN_ANIM_IN].unbind();
|
||||
|
||||
mAnmGroups[MAP_MAIN_ANIM_OUT].bind(false);
|
||||
field_0x8C8C = mAnmGroups[MAP_MAIN_ANIM_OUT].getLastFrame();
|
||||
mOutDuration = mAnmGroups[MAP_MAIN_ANIM_OUT].getLastFrame();
|
||||
mAnmGroups[MAP_MAIN_ANIM_OUT].unbind();
|
||||
field_0x8CAC = 0;
|
||||
mDisplayedBeaconCount = getMaxBeaconCount();
|
||||
@@ -3182,18 +3182,17 @@ void dLytMapMain_c::setupEvent(s32 event, s32 arg1, s32 arg2) {
|
||||
}
|
||||
|
||||
mMarkers.setLinkRot(link->getRotation());
|
||||
// TODO - mAng nonsense?
|
||||
field_0x8D68 = dScGame_c::getCamera(0)->fn_8019E3B0();
|
||||
field_0x8D68 = dScGame_c::getCamera(0)->getXZAngle();
|
||||
mpAllPane->SetVisible(false);
|
||||
getGlobal()->setField_0x55(field_0x8CAE);
|
||||
mDoCameraTransition = false;
|
||||
mCameraTransitionPossible = false;
|
||||
switch (event) {
|
||||
case MAP_EVENT_NONE: {
|
||||
if (mRoomType != ROOMTYPE_BOSS_HOUSE && mRoomType != ROOMTYPE_SKYFIELD_INTERIOR && field_0x8CAE) {
|
||||
mCurrentMapMode = dLytMapGlobal_c::MAPMODE_ZOOM;
|
||||
mNextMapMode = mCurrentMapMode;
|
||||
mMapUpDirection = false;
|
||||
mDoCameraTransition = true;
|
||||
mCameraTransitionPossible = true;
|
||||
} else {
|
||||
if (!sSavedMapData.entries[mRoomType].isValid) {
|
||||
if (MinigameManager::isInMinigameState(MinigameManager::SPIRAL_CHARGE_TUTORIAL)) {
|
||||
@@ -3201,7 +3200,7 @@ void dLytMapMain_c::setupEvent(s32 event, s32 arg1, s32 arg2) {
|
||||
fn_80142C80(mCurrentMapMode);
|
||||
// TODO - regswap (???)
|
||||
mMapUpDirection = false;
|
||||
mDoCameraTransition = true;
|
||||
mCameraTransitionPossible = true;
|
||||
} else {
|
||||
loadMapState();
|
||||
if (mRoomType == ROOMTYPE_SKYFIELD) {
|
||||
@@ -3212,21 +3211,21 @@ void dLytMapMain_c::setupEvent(s32 event, s32 arg1, s32 arg2) {
|
||||
mMapUpDirection = true;
|
||||
}
|
||||
if (mMapUpDirection == false) {
|
||||
mDoCameraTransition = true;
|
||||
mCameraTransitionPossible = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
loadMapState();
|
||||
if (mMapUpDirection == false) {
|
||||
mDoCameraTransition = true;
|
||||
mCameraTransitionPossible = true;
|
||||
}
|
||||
}
|
||||
if (link->checkActionFlags(daPlayerActBase_c::FLG0_CRAWLING)) {
|
||||
mDoCameraTransition = false;
|
||||
mCameraTransitionPossible = false;
|
||||
}
|
||||
}
|
||||
if (mRoomType == ROOMTYPE_DUNGEON) {
|
||||
mDoCameraTransition = false;
|
||||
mCameraTransitionPossible = false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -3255,7 +3254,7 @@ void dLytMapMain_c::setupEvent(s32 event, s32 arg1, s32 arg2) {
|
||||
case 1: mCurrentMapMode = dLytMapGlobal_c::MAPMODE_ZOOM; break;
|
||||
}
|
||||
mMapUpDirection = true;
|
||||
mDoCameraTransition = false;
|
||||
mCameraTransitionPossible = false;
|
||||
break;
|
||||
}
|
||||
case MAP_EVENT_MAP_INTRO: {
|
||||
@@ -3265,7 +3264,7 @@ void dLytMapMain_c::setupEvent(s32 event, s32 arg1, s32 arg2) {
|
||||
mCurrentMapMode = dLytMapGlobal_c::MAPMODE_WORLD;
|
||||
}
|
||||
mMapUpDirection = true;
|
||||
mDoCameraTransition = false;
|
||||
mCameraTransitionPossible = false;
|
||||
break;
|
||||
}
|
||||
case MAP_EVENT_DUNGEON_MAP_GET:
|
||||
@@ -3278,20 +3277,20 @@ void dLytMapMain_c::setupEvent(s32 event, s32 arg1, s32 arg2) {
|
||||
case MAP_EVENT_SW_BANK_SMALL: {
|
||||
mCurrentMapMode = dLytMapGlobal_c::MAPMODE_STAGE;
|
||||
mMapUpDirection = true;
|
||||
mDoCameraTransition = false;
|
||||
mCameraTransitionPossible = false;
|
||||
break;
|
||||
}
|
||||
case MAP_EVENT_FIELD_MAP_CHANGE_5:
|
||||
case MAP_EVENT_FIELD_MAP_CHANGE_8: {
|
||||
mCurrentMapMode = dLytMapGlobal_c::MAPMODE_STAGE;
|
||||
mMapUpDirection = true;
|
||||
mDoCameraTransition = false;
|
||||
mCameraTransitionPossible = false;
|
||||
break;
|
||||
}
|
||||
case MAP_EVENT_SAVE_OBJ: {
|
||||
mCurrentMapMode = dLytMapGlobal_c::MAPMODE_PROVINCE;
|
||||
mMapUpDirection = true;
|
||||
mDoCameraTransition = false;
|
||||
mCameraTransitionPossible = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -3300,16 +3299,16 @@ void dLytMapMain_c::setupEvent(s32 event, s32 arg1, s32 arg2) {
|
||||
mNextMapMode = mCurrentMapMode;
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD || mCurrentMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE ||
|
||||
mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD_SKY) {
|
||||
mDoCameraTransition = false;
|
||||
mCameraTransitionPossible = false;
|
||||
}
|
||||
|
||||
if (mDoCameraTransition) {
|
||||
dScGame_c::getCamera(0)->doFn_80093380();
|
||||
if (mCameraTransitionPossible) {
|
||||
dScGame_c::getCamera(0)->getMapCam()->setCameraTransition();
|
||||
} else {
|
||||
dScGame_c::getCamera(0)->doFn_80093360();
|
||||
dScGame_c::getCamera(0)->doFn_80093340();
|
||||
dScGame_c::getCamera(0)->getMapCam()->setNoCameraTransition();
|
||||
dScGame_c::getCamera(0)->getMapCam()->fn_80093340();
|
||||
}
|
||||
dScGame_c::getCamera(0)->fn_8019E410();
|
||||
dScGame_c::getCamera(0)->enterMap();
|
||||
dLytMapMain_vt0x10();
|
||||
s32 floor = dStage_c::GetInstance()->getMapRelated()->getField_0x1EC();
|
||||
mCurrentFloor = floor;
|
||||
@@ -3349,27 +3348,27 @@ void dLytMapMain_c::setupEvent(s32 event, s32 arg1, s32 arg2) {
|
||||
|
||||
void dLytMapMain_c::close() {
|
||||
dBase_c::s_DrawControlFlags &= ~dBase_c::BASE_PROP_0x10;
|
||||
mDoCameraTransition = false;
|
||||
mCameraTransitionPossible = false;
|
||||
if (mMapEvent == MAP_EVENT_NONE) {
|
||||
if (mRoomType == ROOMTYPE_FIELD || mRoomType == ROOMTYPE_SKYLOFT) {
|
||||
if (!field_0x8CAE && !mMapUpDirection) {
|
||||
mDoCameraTransition = true;
|
||||
mCameraTransitionPossible = true;
|
||||
}
|
||||
} else if (mRoomType == ROOMTYPE_DUNGEON && !field_0x8CAE && !mMapUpDirection) {
|
||||
mDoCameraTransition = false;
|
||||
dScGame_c::getCamera(0)->doFn_80093340();
|
||||
mCameraTransitionPossible = false;
|
||||
dScGame_c::getCamera(0)->getMapCam()->fn_80093340();
|
||||
}
|
||||
}
|
||||
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD || mCurrentMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE ||
|
||||
mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD_SKY) {
|
||||
mDoCameraTransition = false;
|
||||
mCameraTransitionPossible = false;
|
||||
}
|
||||
|
||||
if (mDoCameraTransition) {
|
||||
dScGame_c::getCamera(0)->doFn_80093380();
|
||||
if (mCameraTransitionPossible) {
|
||||
dScGame_c::getCamera(0)->getMapCam()->setCameraTransition();
|
||||
} else {
|
||||
dScGame_c::getCamera(0)->doFn_80093360();
|
||||
dScGame_c::getCamera(0)->getMapCam()->setNoCameraTransition();
|
||||
}
|
||||
|
||||
if (mMapEvent == MAP_EVENT_NONE) {
|
||||
@@ -3377,7 +3376,7 @@ void dLytMapMain_c::close() {
|
||||
}
|
||||
|
||||
mEventDone = false;
|
||||
dScGame_c::getCamera(0)->fn_8019E430();
|
||||
dScGame_c::getCamera(0)->leaveMap();
|
||||
|
||||
dSndPlayerMgr_c::GetInstance()->leaveMap();
|
||||
mStateMgr.changeState(StateID_Out);
|
||||
@@ -4088,6 +4087,10 @@ void dLytMapMain_c::setupFlags() {
|
||||
}
|
||||
}
|
||||
|
||||
void dLytMapMain_c::fn_8013B350() {
|
||||
field_0x8C84 = 1;
|
||||
}
|
||||
|
||||
void dLytMapMain_c::initializeState_In() {
|
||||
if (mMapEvent == MAP_EVENT_SAVE_OBJ) {
|
||||
displaySaveObjs();
|
||||
@@ -4096,7 +4099,7 @@ void dLytMapMain_c::initializeState_In() {
|
||||
}
|
||||
}
|
||||
|
||||
if (mDoCameraTransition || mMapEvent == MAP_EVENT_MAP_INTRO) {
|
||||
if (mCameraTransitionPossible || mMapEvent == MAP_EVENT_MAP_INTRO) {
|
||||
mpInOutAnmGroup = &mAnmGroups[MAP_MAIN_ANIM_IN];
|
||||
} else {
|
||||
mpInOutAnmGroup = &mAnmGroups[MAP_MAIN_ANIM_IN_NO_CAM];
|
||||
@@ -4108,10 +4111,11 @@ void dLytMapMain_c::initializeState_In() {
|
||||
mPinIconAggregate.setScale(getGlobal()->getZoomFrame());
|
||||
}
|
||||
void dLytMapMain_c::executeState_In() {
|
||||
mIsVisible = 1;
|
||||
mIsVisible = true;
|
||||
|
||||
dLytMapGlobal_c *global = getGlobal();
|
||||
if ((!mDoCameraTransition || !field_0x8C84) && mDoCameraTransition) {
|
||||
// ???
|
||||
if ((!mCameraTransitionPossible || !field_0x8C84) && mCameraTransitionPossible) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4596,7 +4600,7 @@ void dLytMapMain_c::initializeState_Out() {
|
||||
mPopupInfo.mStateMgr.changeState(StateID_Out);
|
||||
}
|
||||
dLytMeter_c::GetInstance()->setMeterMode(dLytMeterMain_c::MODE_MAP_INIT);
|
||||
if (mDoCameraTransition || mMapEvent == MAP_EVENT_MAP_INTRO) {
|
||||
if (mCameraTransitionPossible || mMapEvent == MAP_EVENT_MAP_INTRO) {
|
||||
mpInOutAnmGroup = &mAnmGroups[MAP_MAIN_ANIM_OUT];
|
||||
} else {
|
||||
mpInOutAnmGroup = &mAnmGroups[MAP_MAIN_ANIM_OUT_NO_CAM];
|
||||
@@ -4604,7 +4608,7 @@ void dLytMapMain_c::initializeState_Out() {
|
||||
|
||||
mpInOutAnmGroup->bind(false);
|
||||
mpInOutAnmGroup->setFrame(0.0f);
|
||||
field_0x8C8C = mpInOutAnmGroup->getLastFrame();
|
||||
mOutDuration = mpInOutAnmGroup->getLastFrame();
|
||||
|
||||
if (fn_80141530()) {
|
||||
dBase_c::s_NextExecuteControlFlags &= ~dBase_c::BASE_PROP_0x10;
|
||||
@@ -4620,7 +4624,7 @@ void dLytMapMain_c::executeState_Out() {
|
||||
dBase_c::s_NextExecuteControlFlags &= ~dBase_c::BASE_PROP_0x10;
|
||||
mLyt.calc();
|
||||
mpInOutAnmGroup->unbind();
|
||||
mIsVisible = 0;
|
||||
mIsVisible = false;
|
||||
mStateMgr.changeState(StateID_Invisible);
|
||||
}
|
||||
}
|
||||
@@ -5047,8 +5051,8 @@ void dLytMapMain_c::forceOut() {
|
||||
mAnmGroups[MAP_MAIN_ANIM_OUT].unbind();
|
||||
dBase_c::s_NextExecuteControlFlags &= ~dBase_c::BASE_PROP_0x10;
|
||||
dBase_c::s_DrawControlFlags &= ~dBase_c::BASE_PROP_0x10;
|
||||
dScGame_c::getCamera(0)->doFn_80093360();
|
||||
dScGame_c::getCamera(0)->fn_8019E430();
|
||||
dScGame_c::getCamera(0)->getMapCam()->setNoCameraTransition();
|
||||
dScGame_c::getCamera(0)->leaveMap();
|
||||
mStateMgr.changeState(StateID_Invisible);
|
||||
}
|
||||
|
||||
|
||||
@@ -268,9 +268,9 @@ bool dLytMeterABtn_c::execute() {
|
||||
field_0x1BC = LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_A);
|
||||
field_0x1C0 = LytDoButtonRelated::getHas(LytDoButtonRelated::DO_BUTTON_A);
|
||||
|
||||
if (field_0x1BC == 0x76) {
|
||||
if (field_0x1BC == LytDoButtonRelated::ACT_IE_ETC_REMOVE_BEACON) {
|
||||
state = true;
|
||||
} else if (field_0x1BC == 0x57) {
|
||||
} else if (field_0x1BC == LytDoButtonRelated::ACT_IE_INFO_GRAB_3) {
|
||||
state = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -372,7 +372,7 @@ void dLytMeterDowsing_c::executeState_Invisible() {
|
||||
}
|
||||
void dLytMeterDowsing_c::finalizeState_Invisible() {
|
||||
if (getSelectedDowsingSlot() != DowsingTarget::SLOT_NONE &&
|
||||
LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == 0x52) {
|
||||
LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == LytDoButtonRelated::ACT_IE_INFO_DOWSE) {
|
||||
mAnm[DOWSING_ANIM_DECIDE].setToEnd();
|
||||
mAnm[DOWSING_ANIM_DECIDE].setAnimEnable(true);
|
||||
mLyt.calc();
|
||||
@@ -404,7 +404,7 @@ void dLytMeterDowsing_c::executeState_Wait() {
|
||||
dLytMeter_c::GetMain()->fn_800D5380(0) && !dLytMeter_c::GetMain()->isInModeMap() &&
|
||||
!dLytMeter_c::GetMain()->isInModePause() && getSelectedDowsingSlot() != DowsingTarget::SLOT_LOOK &&
|
||||
getSelectedDowsingSlot() != DowsingTarget::SLOT_NONE &&
|
||||
LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == 0x52) {
|
||||
LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == LytDoButtonRelated::ACT_IE_INFO_DOWSE) {
|
||||
mAnm[DOWSING_ANIM_IN].setBackwardsOnce();
|
||||
mAnm[DOWSING_ANIM_IN].setToEnd2();
|
||||
mAnm[DOWSING_ANIM_IN].setAnimEnable(true);
|
||||
@@ -498,7 +498,7 @@ void dLytMeterDowsing_c::initializeState_MenuSelectingOut() {
|
||||
mAnm[DOWSING_ANIM_IN].setAnimEnable(true);
|
||||
field_0x550A = 0;
|
||||
if (getSelectedDowsingSlot() != DowsingTarget::SLOT_NONE &&
|
||||
LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == 0x52) {
|
||||
LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == LytDoButtonRelated::ACT_IE_INFO_DOWSE) {
|
||||
if (getSelectedDowsingSlot() != DowsingTarget::SLOT_LOOK) {
|
||||
field_0x550A = 1;
|
||||
}
|
||||
@@ -551,8 +551,9 @@ void dLytMeterDowsing_c::initializeState_ToUse() {
|
||||
mAnm[DOWSING_ANIM_INPUT_0].setAnimEnable(true);
|
||||
|
||||
if (FileManager::GetInstance()->getDowsingSlotIdx() != 8 &&
|
||||
LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == 0x52 && dLytMeter_c::GetMain()->fn_800D5380(0) &&
|
||||
!dLytMeter_c::GetMain()->isInModeMap() && !dLytMeter_c::GetMain()->isInModePause()) {
|
||||
LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == LytDoButtonRelated::ACT_IE_INFO_DOWSE &&
|
||||
dLytMeter_c::GetMain()->fn_800D5380(0) && !dLytMeter_c::GetMain()->isInModeMap() &&
|
||||
!dLytMeter_c::GetMain()->isInModePause()) {
|
||||
mAnm[DOWSING_ANIM_RESET].setAnimEnable(true);
|
||||
mAnm[DOWSING_ANIM_RESET].setBackwardsOnce();
|
||||
mAnm[DOWSING_ANIM_RESET].setToStart();
|
||||
@@ -560,8 +561,9 @@ void dLytMeterDowsing_c::initializeState_ToUse() {
|
||||
}
|
||||
void dLytMeterDowsing_c::executeState_ToUse() {
|
||||
if (FileManager::GetInstance()->getDowsingSlotIdx() != 8 &&
|
||||
LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == 0x52 && dLytMeter_c::GetMain()->fn_800D5380(0) &&
|
||||
!dLytMeter_c::GetMain()->isInModeMap() && !dLytMeter_c::GetMain()->isInModePause()) {
|
||||
LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == LytDoButtonRelated::ACT_IE_INFO_DOWSE &&
|
||||
dLytMeter_c::GetMain()->fn_800D5380(0) && !dLytMeter_c::GetMain()->isInModeMap() &&
|
||||
!dLytMeter_c::GetMain()->isInModePause()) {
|
||||
if (mAnm[DOWSING_ANIM_INPUT_0].isStop2()) {
|
||||
if (!mAnm[DOWSING_ANIM_RESET].isEnabled() || mAnm[DOWSING_ANIM_RESET].isStop2()) {
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
@@ -594,8 +596,9 @@ void dLytMeterDowsing_c::initializeState_ToUnuse() {
|
||||
mAnm[DOWSING_ANIM_INPUT_0].setAnimEnable(true);
|
||||
|
||||
if (FileManager::GetInstance()->getDowsingSlotIdx() != 8 &&
|
||||
LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == 0x52 && dLytMeter_c::GetMain()->fn_800D5380(0) &&
|
||||
!dLytMeter_c::GetMain()->isInModeMap() && !dLytMeter_c::GetMain()->isInModePause()) {
|
||||
LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == LytDoButtonRelated::ACT_IE_INFO_DOWSE &&
|
||||
dLytMeter_c::GetMain()->fn_800D5380(0) && !dLytMeter_c::GetMain()->isInModeMap() &&
|
||||
!dLytMeter_c::GetMain()->isInModePause()) {
|
||||
mAnm[DOWSING_ANIM_RESET].setAnimEnable(true);
|
||||
mAnm[DOWSING_ANIM_RESET].setForwardOnce();
|
||||
mAnm[DOWSING_ANIM_RESET].setToStart();
|
||||
|
||||
@@ -436,7 +436,7 @@ bool dLytMeterGanbariGauge_c::execute() {
|
||||
}
|
||||
}
|
||||
|
||||
mVec3_c diff = dAcPy_c::GetLink()->mPositionCopy3 - dScGame_c::getCamera(0)->getPositionMaybe();
|
||||
mVec3_c diff = dAcPy_c::GetLink()->mPositionCopy3 - dScGame_c::getCamera(0)->getPosition();
|
||||
f32 len = diff.mag();
|
||||
mVec3_c v;
|
||||
d3d::worldToScreen(v, dAcPy_c::GetLink()->mPositionCopy3);
|
||||
@@ -656,8 +656,8 @@ bool dLytMeterGanbariGauge_c::fn_80104760() const {
|
||||
}
|
||||
|
||||
bool dLytMeterGanbariGauge_c::fn_801047B0() const {
|
||||
if (fn_80081FE0(dScGame_c::getCamera(0)->getField_0xD98(), "mogu") ||
|
||||
fn_80081FE0(dScGame_c::getCamera(0)->getField_0xD98(), "mogu2")) {
|
||||
if (dScGame_c::getCamera(0)->getGameCam1()->isCurrentTrend("mogu") ||
|
||||
dScGame_c::getCamera(0)->getGameCam1()->isCurrentTrend("mogu2")) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -186,9 +186,9 @@ bool dLytMeterZBtn_c::execute() {
|
||||
return true;
|
||||
}
|
||||
field_0x1C4 = true;
|
||||
if ((!fn_80081FE0(dScGame_c::getCamera(0)->getField_0xD98(), "mogu") ||
|
||||
if ((!dScGame_c::getCamera(0)->getGameCam1()->isCurrentTrend("mogu") ||
|
||||
AttentionManager::GetInstance()->checkLink2()) &&
|
||||
LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_Z) == 0x67) {
|
||||
LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_Z) == LytDoButtonRelated::ACT_IE_ETC_VIEW_SURFACE) {
|
||||
field_0x1C4 = false;
|
||||
LytDoButtonRelated::set(LytDoButtonRelated::DO_BUTTON_Z, LytDoButtonRelated::ACT_IE_NONE);
|
||||
}
|
||||
|
||||
@@ -1056,12 +1056,12 @@ bool dTgMassObjInstance::checkForHit(
|
||||
param_5->mCutCounter++;
|
||||
mVec3_c local16C(mGroundHeight.x, mGroundHeight.y, mGroundHeight.z);
|
||||
mColor local17C = 0xFFFFFFFF;
|
||||
f32 camField2A8 = dScGame_c::getCamera()->getField_0x2A8();
|
||||
f32 waterHeight = dScGame_c::getCamera()->getWaterHeight();
|
||||
local17C.r = mTevColor.r;
|
||||
local17C.g = mTevColor.g;
|
||||
local17C.b = mTevColor.b;
|
||||
local17C.a = mTevColor.a;
|
||||
if (local16C.y + 100.f < camField2A8 && mMassObjSubtype <= 5) {
|
||||
if (local16C.y + 100.f < waterHeight && mMassObjSubtype <= 5) {
|
||||
if (dScGame_c::isCurrentStage("D100")) {
|
||||
mMassObjSubtype = 6;
|
||||
} else {
|
||||
@@ -1424,7 +1424,7 @@ extern void LoadMaterial(
|
||||
);
|
||||
|
||||
void GrassModelData::draw(f32 param_1, f32 param_2, nw4r::math::MTX34 *pMtx) {
|
||||
mVec3_c cameraPosition = dScGame_c::getCamera()->getPositionMaybe();
|
||||
mVec3_c cameraPosition = dScGame_c::getCamera()->getPosition();
|
||||
bool isInFaronWoods = dScGame_c::isCurrentStage("F100");
|
||||
nw4r::g3d::ResMatMisc miscData(mResMat.GetResMatMisc());
|
||||
miscData.SetLightSetIdx(1);
|
||||
|
||||
@@ -416,11 +416,9 @@ void AttentionGroup::fn_800964B0() {
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" f32 lbl_8057CD9C;
|
||||
|
||||
f32 AttentionManager::targetScore(dAcObjBase_c *target, dAcObjBase_c *origin) {
|
||||
s16 angle = cLib::targetAngleY(target->mPosition, origin->mPosition) - origin->mRotation.y.mVal;
|
||||
f32 viewAngle = fabsf(angle * lbl_8057CD9C);
|
||||
f32 viewAngle = fabsf(mAng::s2n_c(angle));
|
||||
if (viewAngle > 0.5f) {
|
||||
return viewAngle;
|
||||
}
|
||||
@@ -429,9 +427,7 @@ f32 AttentionManager::targetScore(dAcObjBase_c *target, dAcObjBase_c *origin) {
|
||||
|
||||
// Maybe checks if actor is currently targeted
|
||||
bool AttentionManager::fn_80096B40(dAcObjBase_c *actor) {
|
||||
AttentionPool *refs = mGroups[1].getOtherPool();
|
||||
dAcObjBase_c *ac = refs->getActor(mModels.mCurrentTargetInfoIdx);
|
||||
if (ac == actor) {
|
||||
if (getTargetedActorUnchecked() == actor) {
|
||||
mHasTarget = 1;
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
#include "toBeSorted/d_camera_base.h"
|
||||
|
||||
#include "common.h"
|
||||
|
||||
// All of these base functions and the vtable got stripped
|
||||
bool dCameraBase_c::create() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dCameraBase_c::remove() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dCameraBase_c::execute() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dCameraBase_c::draw() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dCameraBase_c::doCreate(s32 index) {
|
||||
if (!mCreated) {
|
||||
if (!create()) {
|
||||
return false;
|
||||
}
|
||||
mCreated = true;
|
||||
mIndex = index;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dCameraBase_c::doRemove() {
|
||||
mPrevIsActive = false;
|
||||
return remove();
|
||||
}
|
||||
|
||||
bool dCameraBase_c::doExecute() {
|
||||
if (mIsActive && !mPrevIsActive) {
|
||||
onBecomeActive();
|
||||
} else if (!mIsActive && mPrevIsActive) {
|
||||
onBecomeInactive();
|
||||
}
|
||||
mPrevIsActive = mIsActive;
|
||||
if (!mIsActive) {
|
||||
return false;
|
||||
} else {
|
||||
return execute();
|
||||
}
|
||||
}
|
||||
|
||||
bool dCameraBase_c::doDraw() {
|
||||
if (mPrevIsActive) {
|
||||
return draw();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
#include "toBeSorted/d_camera_event.h"
|
||||
|
||||
#include "common.h"
|
||||
|
||||
class dCameraEvent_HIO_c {
|
||||
public:
|
||||
dCameraEvent_HIO_c();
|
||||
virtual ~dCameraEvent_HIO_c();
|
||||
|
||||
/* 0x04 */ f32 field_0x04;
|
||||
/* 0x08 */ f32 field_0x08;
|
||||
/* 0x0A */ s16 field_0x0A;
|
||||
};
|
||||
|
||||
dCameraEvent_HIO_c::~dCameraEvent_HIO_c() {}
|
||||
dCameraEvent_HIO_c::dCameraEvent_HIO_c() : field_0x04(0.0f), field_0x08(180.0f), field_0x0A(0) {}
|
||||
|
||||
static dCameraEvent_HIO_c sHio;
|
||||
|
||||
dCameraEvent_c::dCameraEvent_c()
|
||||
: field_0x48(0), field_0x4A(-1), mEventRelated(1, nullptr), field_0xA0(0), field_0xA4(-1), field_0xAC(-1) {}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,241 @@
|
||||
#include "toBeSorted/d_camera_map.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/a/obj/d_a_obj_base.h"
|
||||
#include "d/col/bg/d_bg_s.h"
|
||||
#include "d/col/bg/d_bg_s_lin_chk.h"
|
||||
#include "d/col/cc/d_cc_s.h"
|
||||
#include "d/d_sc_game.h"
|
||||
#include "d/lyt/d_lyt_map.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "toBeSorted/d_camera_math.h"
|
||||
#include "toBeSorted/deg_angle_util.h"
|
||||
|
||||
class dCameraMap_HIO_c {
|
||||
public:
|
||||
dCameraMap_HIO_c();
|
||||
virtual ~dCameraMap_HIO_c();
|
||||
|
||||
/* 0x04 */ f32 field_0x04;
|
||||
/* 0x08 */ f32 field_0x08;
|
||||
/* 0x0C */ f32 field_0x0C;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1C;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ f32 field_0x24;
|
||||
/* 0x28 */ s16 field_0x28;
|
||||
/* 0x2C */ f32 field_0x2C;
|
||||
/* 0x30 */ f32 field_0x30;
|
||||
/* 0x34 */ f32 field_0x34;
|
||||
/* 0x38 */ u8 _0x38[0x3C - 0x38];
|
||||
/* 0x3C */ u16 field_0x3C;
|
||||
/* 0x3E */ u16 field_0x3E;
|
||||
};
|
||||
|
||||
dCameraMap_HIO_c::~dCameraMap_HIO_c() {}
|
||||
dCameraMap_HIO_c::dCameraMap_HIO_c() {
|
||||
field_0x04 = 2000.0f;
|
||||
field_0x08 = 1000.0f;
|
||||
field_0x0C = 0.6f;
|
||||
field_0x10 = 0.75f;
|
||||
field_0x18 = 10000.0f;
|
||||
field_0x14 = 2500.0f;
|
||||
field_0x20 = 89.0f;
|
||||
field_0x1C = 3.0f;
|
||||
field_0x24 = 90.0f;
|
||||
field_0x28 = 5;
|
||||
field_0x3E = 2;
|
||||
field_0x2C = 0.7f;
|
||||
field_0x30 = 0.2f;
|
||||
field_0x34 = 0.9f;
|
||||
field_0x3C = 0;
|
||||
}
|
||||
|
||||
static dCameraMap_HIO_c sHio;
|
||||
|
||||
mVec3_c fn_800929C0(const mVec3_c &p2, const mVec3_c &p3, dAcObjBase_c *obj) {
|
||||
mVec3_c ret;
|
||||
|
||||
mVec3_c v1 = p3;
|
||||
|
||||
dAcPy_c *link = dAcPy_c::LINK;
|
||||
|
||||
dAcObjBase_c *other = nullptr;
|
||||
if (obj != nullptr && obj != link) {
|
||||
other = obj;
|
||||
}
|
||||
|
||||
mVec3_c v2 = p3;
|
||||
|
||||
dAcObjBase_c *controllingActor = (dAcObjBase_c *)link->getLinkage().mControllingActor.p_owner;
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
ret = v1;
|
||||
if (!dCcS::GetInstance()->ChkCameraPoint(p2, v2, v1, 15.0f, link, other, controllingActor)) {
|
||||
break;
|
||||
}
|
||||
if (p2 == v1) {
|
||||
break;
|
||||
}
|
||||
mVec3_c tmp = p3 - v1;
|
||||
tmp.normalize();
|
||||
v2 = v1 - tmp * 2.0f;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void dCameraMap_c::onBecomeActive() {
|
||||
mTimer = 0;
|
||||
mSourceView = mView;
|
||||
mTargetView = mView;
|
||||
if (!(sHio.field_0x3C & 0x100)) {
|
||||
mTargetView.mPosition = mTargetView.mTarget;
|
||||
}
|
||||
mTargetView.mPosition.y += sHio.field_0x08;
|
||||
mTargetView.mFov = sHio.field_0x24;
|
||||
mTargetView.mTilt = 0.0f;
|
||||
dLytMap_c::GetInstance()->doFn_8013B350();
|
||||
dPolar polar(mView.mPosition - mView.mTarget);
|
||||
field_0xC4 = polar.V.value;
|
||||
mIsMovingOut = false;
|
||||
mIsActiveOrAnimating = true;
|
||||
}
|
||||
|
||||
void dCameraMap_c::onBecomeInactive() {
|
||||
mIsMovingOut = true;
|
||||
dScGame_c::getCamera()->getGameCam1()->setView(mView);
|
||||
}
|
||||
|
||||
bool dCameraMap_c::create() {
|
||||
dAcPy_c *link = dAcPy_c::GetLinkM();
|
||||
if (link == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
field_0x44 = link;
|
||||
mView.mTarget = link->mPosition + mVec3_c(0.0f, 100.0f, 0.0f);
|
||||
|
||||
mVec3_c v(0.0f, 200.0f, 500.0f);
|
||||
v.rotY(link->mRotation.y - 0x8000);
|
||||
|
||||
mView.mPosition = mView.mTarget + v;
|
||||
mView.mFov = 55.0f;
|
||||
mView1 = mView;
|
||||
|
||||
field_0x3C = sHio.field_0x04;
|
||||
field_0x40 = 0.0f;
|
||||
field_0x38 = 0.0f;
|
||||
|
||||
field_0x2C = mVec3_c::Zero;
|
||||
mIsActiveOrAnimating = false;
|
||||
mIsMovingOut = true;
|
||||
field_0xB0 = 0;
|
||||
mTimer = 0;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dCameraMap_c::remove() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dCameraMap_c::execute() {
|
||||
s16 duration = sHio.field_0x28;
|
||||
|
||||
if ((sHio.field_0x3C & 0x200) && mIsMovingOut) {
|
||||
// TODO no-op
|
||||
duration = sHio.field_0x28;
|
||||
}
|
||||
field_0x40 = 1.0f;
|
||||
|
||||
if (sHio.field_0x3C & 0x8) {
|
||||
mTargetView = mSourceView;
|
||||
}
|
||||
|
||||
dBgS_CamLinChk chk;
|
||||
chk.Set(&mSourceView.mPosition, &mTargetView.mPosition, (dAcObjBase_c *)nullptr);
|
||||
if (dBgS::GetInstance()->LineCross(&chk)) {
|
||||
mTargetView = mSourceView;
|
||||
}
|
||||
|
||||
if (sHio.field_0x3C & 0x10) {
|
||||
if (sHio.field_0x3E == 1) {
|
||||
// Reorients the main camera to point to north when opening the map without a transition... unused
|
||||
dPolar polar(mSourceView.mPosition - mSourceView.mTarget);
|
||||
polar.V.Set(0.0f);
|
||||
mSourceView.mPosition = mSourceView.mTarget + polar.toCartesian();
|
||||
}
|
||||
mTargetView = mSourceView;
|
||||
mTimer = 1;
|
||||
}
|
||||
|
||||
if (mIsMovingOut) {
|
||||
if (mTimer > 0) {
|
||||
mTimer--;
|
||||
if (mTimer == 0) {
|
||||
mIsActiveOrAnimating = false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mTimer < duration) {
|
||||
mTimer++;
|
||||
}
|
||||
}
|
||||
|
||||
f32 f = (f32)mTimer / (f32)duration;
|
||||
f32 f5 = camEaseInOut(f, sHio.field_0x2C);
|
||||
f32 f6 = camEaseInOut(f, sHio.field_0x30);
|
||||
f32 f8 = f5 * 0.99f;
|
||||
f32 tiltFovInterp = camEaseInOut(f, sHio.field_0x34);
|
||||
|
||||
mView.mTarget = mSourceView.mTarget + (mTargetView.mTarget - mSourceView.mTarget) * f5;
|
||||
mView.mPosition.x = mSourceView.mPosition.x + (mTargetView.mPosition.x - mSourceView.mPosition.x) * f8;
|
||||
mView.mPosition.y = mSourceView.mPosition.y + (mTargetView.mPosition.y - mSourceView.mPosition.y) * f6;
|
||||
mView.mPosition.z = mSourceView.mPosition.z + (mTargetView.mPosition.z - mSourceView.mPosition.z) * f8;
|
||||
|
||||
mView.mPosition = fn_800929C0(mView.mTarget, mView.mPosition, field_0x44);
|
||||
mView.mFov = mSourceView.mFov + (mTargetView.mFov - mSourceView.mFov) * tiltFovInterp;
|
||||
mView.mTilt = mSourceView.mTilt + (mTargetView.mTilt - mSourceView.mTilt) * tiltFovInterp;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dCameraMap_c::vt_0x34() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dCameraMap_c::draw() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dCameraMap_c::isActiveOrAnimating() const {
|
||||
return mIsActiveOrAnimating;
|
||||
}
|
||||
|
||||
void dCameraMap_c::startOut() {
|
||||
mIsMovingOut = true;
|
||||
if (sHio.field_0x3C & 0x200) {
|
||||
mTimer = dLytMap_c::GetInstance()->getOutDuration() + 0.1f;
|
||||
}
|
||||
}
|
||||
|
||||
void dCameraMap_c::fn_80093340() {
|
||||
sHio.field_0x3E = 2;
|
||||
}
|
||||
|
||||
void dCameraMap_c::setNoCameraTransition() {
|
||||
sHio.field_0x3C |= 0x10 | 0x8;
|
||||
}
|
||||
|
||||
void dCameraMap_c::setCameraTransition() {
|
||||
sHio.field_0x3C &= ~(0x10 | 0x8);
|
||||
}
|
||||
|
||||
void dCameraMap_c::setView(const CamView &view) {
|
||||
mView1 = view;
|
||||
mView = view;
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
#include "toBeSorted/d_camera_math.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "d/a/obj/d_a_obj_base.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "toBeSorted/deg_angle_util.h"
|
||||
|
||||
#include <math.h>
|
||||
|
||||
void d_camera_math_float_order() {
|
||||
// Maybe more functions here
|
||||
0.5;
|
||||
1.0;
|
||||
0.0f;
|
||||
-1.0;
|
||||
2.0;
|
||||
4.0;
|
||||
-1e-7;
|
||||
}
|
||||
|
||||
f32 camEaseIn(f32 arg, f32 param) {
|
||||
// TODO - regswaps, maybe equivalent
|
||||
f64 factor;
|
||||
if (arg >= 0.0f) {
|
||||
factor = 1.0;
|
||||
} else {
|
||||
factor = -1.0;
|
||||
arg = -arg;
|
||||
}
|
||||
|
||||
f64 f1 = 2.0 * arg * param - 2.0 * arg - 2.0 * param;
|
||||
f64 tmp = (-f1 - 1.0);
|
||||
f64 f6 = f1 * f1 - tmp * 4.0 * arg;
|
||||
if (f6 > -1e-7) {
|
||||
f6 = sqrt(f6);
|
||||
} else {
|
||||
f6 = 0.0;
|
||||
}
|
||||
|
||||
f64 f2 = 2.0 * tmp;
|
||||
f64 f2_ = (-f1 - f6);
|
||||
if (f2 > 1e-7 || f2 < -1e-7) {
|
||||
f2 = f2_ / f2;
|
||||
f6 = 1.0 - f2;
|
||||
f6 = f2 * f2 + f6 * f6 + param * 2.0 * f6 * f2;
|
||||
// What
|
||||
if (f6 > 1.0000000116860974e-7) {
|
||||
f6 = (f2 * f2) / f6;
|
||||
} else {
|
||||
f6 = 0.0;
|
||||
}
|
||||
} else {
|
||||
f32 a = camEaseIn(arg - 1e-6f, param);
|
||||
f32 b = camEaseIn(arg + 1e-6f, param);
|
||||
f6 = (a + b) * 0.5;
|
||||
}
|
||||
return f6 * factor;
|
||||
}
|
||||
|
||||
f32 camEaseInOut(f32 arg, f32 param) {
|
||||
if (arg <= 0.0f) {
|
||||
return 0.0f;
|
||||
} else if (arg >= 1.0f) {
|
||||
return 1.0f;
|
||||
}
|
||||
|
||||
f32 f1;
|
||||
f32 result;
|
||||
if (arg <= 0.5f) {
|
||||
f1 = arg * 2.0f;
|
||||
result = camEaseIn(f1, param) * 0.5f;
|
||||
} else {
|
||||
f1 = (1.0f - arg) * 2.0f;
|
||||
result = (1.0f - camEaseIn(f1, param)) * 0.5f + 0.5f;
|
||||
}
|
||||
return result * (1.0f - f1) + arg * f1;
|
||||
}
|
||||
|
||||
mVec3_c camGetPointOnLine(const mVec3_c &target, const mVec3_c &origin, const mVec3_c &point) {
|
||||
// NONMATCHING - stack swap between the two temporary vectors
|
||||
dPolar p(target - origin);
|
||||
p.R = (point - origin).mag();
|
||||
return origin + p.toCartesian();
|
||||
}
|
||||
|
||||
mVec3_c camOffsetPoint(dAcObjBase_c *ac, const mVec3_c &localOffset) {
|
||||
mVec3_c result = localOffset;
|
||||
if (ac != nullptr) {
|
||||
result.rotX(ac->mRotation.x);
|
||||
result.rotY(ac->mRotation.y);
|
||||
result += ac->mPosition;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
mVec3_c camOffsetPoint(dAcObjBase_c *ac, const mVec3_c &localOffset, const mAng3_c &rot) {
|
||||
mVec3_c result = localOffset;
|
||||
if (ac != nullptr) {
|
||||
result.rotX(rot.x);
|
||||
result.rotY(rot.y);
|
||||
result += ac->mPosition;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
mVec3_c camPointToLocal(dAcObjBase_c *ac, const mVec3_c &pos) {
|
||||
mVec3_c result = pos;
|
||||
if (ac != nullptr) {
|
||||
result -= ac->mPosition;
|
||||
// TODO: Shouldn't these be in the opposite order for a true inverse?
|
||||
result.rotX(-ac->mRotation.x);
|
||||
result.rotY(-ac->mRotation.y);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
mVec3_c camPointToLocal(dAcObjBase_c *ac, const mVec3_c &pos, const mAng3_c &rot) {
|
||||
mVec3_c result = pos;
|
||||
if (ac != nullptr) {
|
||||
result -= ac->mPosition;
|
||||
// TODO: Shouldn't these be in the opposite order for a true inverse?
|
||||
result.rotX(-rot.x);
|
||||
result.rotY(-rot.y);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user