mirror of
https://github.com/zeldaret/ss
synced 2026-06-29 19:12:15 -04:00
Progress on game cam
This commit is contained in:
+132
-103
@@ -3066,13 +3066,13 @@ entry__16dEnemySwordMdl_cFP12dAcObjBase_cP15dShadowCircle_cP7mQuat_c = .text:0x8
|
||||
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
|
||||
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
|
||||
deactivate__13dCameraBase_cFv = .text:0x8006BDB0; // type:function size:0xC
|
||||
activate__13dCameraBase_cFv = .text:0x8006BDC0; // type:function size:0xC
|
||||
getView__13dCameraBase_cFv = .text:0x8006BDD0; // type:function size:0x8
|
||||
__dt__7CamViewFv = .text:0x8006BDE0; // type:function size:0x40
|
||||
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__FPCce = .text:0x8006BEB0; // type:function size:0x50
|
||||
@@ -3088,60 +3088,60 @@ 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
|
||||
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
|
||||
@@ -3150,26 +3150,26 @@ fn_8007E1B0__12UnkCamChecksFP12dAcObjBase_c = .text:0x8007E1B0; // type:function
|
||||
__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
|
||||
fn_8007F230 = .text:0x8007F230; // type:function size:0x94
|
||||
fn_8007F2D0 = .text:0x8007F2D0; // type:function size:0x38
|
||||
fn_8007F310 = .text:0x8007F310; // type:function size:0x1EC
|
||||
linChkAttentionTarget__FRC7mVec3_cRC7mVec3_cR11dBgS_LinChki = .text:0x8007F500; // type:function size:0xF4
|
||||
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
|
||||
camLinChkAttentionTarget__FRC7mVec3_cRC7mVec3_ci = .text:0x8007F640; // type:function size:0x70
|
||||
linCrossAttentionTarget__FRC7mVec3_cRC7mVec3_ci = .text:0x8007F640; // type:function size:0x70
|
||||
linCrossAttentionTarget__FRC7mVec3_cRC7mVec3_cR7mVec3_c = .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
|
||||
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
|
||||
draw__13dCameraGame_cFv = .text:0x80080900; // type:function size:0x8
|
||||
remove__13dCameraGame_cFv = .text:0x80080910; // type:function size:0x44
|
||||
fn_80080960__13dCameraGame_cFllScl = .text:0x80080960; // type:function size:0x118
|
||||
fn_80080A80 = .text:0x80080A80; // type:function size:0x6C
|
||||
fn_80080AF0 = .text:0x80080AF0; // type:function size:0x10
|
||||
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
|
||||
fn_80080B70 = .text:0x80080B70; // type:function size:0x220
|
||||
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
|
||||
@@ -3180,20 +3180,20 @@ doStyleChange = .text:0x80081F80; // type:function size:0x58
|
||||
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
|
||||
fn_800821B0 = .text:0x800821B0; // type:function size:0xC0
|
||||
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
|
||||
__dt__13dCameraGame_cFv = .text:0x80082310; // type:function size:0xB0
|
||||
__sinit_\d_camera_game_cpp = .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__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
|
||||
@@ -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
|
||||
@@ -51243,34 +51256,50 @@ sRumblePreset10__9dRumble_c = .bss:0x805A07F0; // type:object size:0xC data:4byt
|
||||
@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
|
||||
sHio = .bss:0x805A08C8; // type:object size:0x138 scope:local 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
|
||||
sTrendIdxes__13dCameraGame_c = .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
|
||||
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
|
||||
|
||||
+1
-1
@@ -484,7 +484,7 @@ 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_base.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"),
|
||||
|
||||
@@ -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,18 +37,10 @@ public:
|
||||
// vt at 0x28
|
||||
/* vt 0x08 */ virtual void onBecomeActive() {}
|
||||
/* vt 0x0C */ virtual void onBecomeInactive() {}
|
||||
/* vt 0x10 */ virtual bool create() {
|
||||
return true;
|
||||
}
|
||||
/* vt 0x14 */ virtual bool remove() {
|
||||
return true;
|
||||
}
|
||||
/* vt 0x18 */ virtual bool execute() {
|
||||
return true;
|
||||
}
|
||||
/* vt 0x1C */ virtual bool draw() {
|
||||
return true;
|
||||
}
|
||||
/* 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?
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
#include "toBeSorted/d_camera_base.h"
|
||||
#include "toBeSorted/deg_angle_util.h"
|
||||
|
||||
class dCamera_c;
|
||||
|
||||
// Size: 0xC
|
||||
struct CamParamHeader {
|
||||
/* 0x00 */ u32 magic;
|
||||
@@ -22,8 +24,10 @@ struct CamParamHeader {
|
||||
// Size: 0xA
|
||||
#pragma pack(push, 2)
|
||||
struct CamParamStyle {
|
||||
/* 0x00 */ u32 id;
|
||||
/* 0x04 */ u8 _0x04[6];
|
||||
/* 0x00 */ u8 id[4];
|
||||
/* 0x04 */ u8 _0x04[2];
|
||||
/* 0x06 */ u16 floatParamOffset;
|
||||
/* 0x08 */ u16 flagParamOffset;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
@@ -91,7 +95,7 @@ struct CamId {
|
||||
field_0x04 = 0;
|
||||
}
|
||||
|
||||
bool someCheck() const {
|
||||
bool isValid() const {
|
||||
if (field_0x04 < 3 && roomId != dAcPy_c::GetLinkM()->mRoomID) {
|
||||
return false;
|
||||
} else {
|
||||
@@ -129,6 +133,44 @@ struct UnkCamChecks {
|
||||
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();
|
||||
@@ -138,6 +180,18 @@ public:
|
||||
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;
|
||||
@@ -155,16 +209,14 @@ public:
|
||||
bool getField_0x078() const {
|
||||
return field_0x078;
|
||||
}
|
||||
|
||||
|
||||
f32 getField_0x0AC() const {
|
||||
return field_0x0AC;
|
||||
}
|
||||
|
||||
void clearCamIds();
|
||||
|
||||
bool isCurrentTrend(const char *name) const;
|
||||
|
||||
void fn_80080960(s32, s32, s8, s32);
|
||||
bool isCurrentTrend(const char *name) const;
|
||||
|
||||
void onFlag(u32 flag) {
|
||||
mFlags |= flag;
|
||||
@@ -174,7 +226,13 @@ public:
|
||||
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;
|
||||
|
||||
@@ -56,7 +56,8 @@ int dTgGateToGround_c::actorExecute() {
|
||||
}
|
||||
} else {
|
||||
if (params_00_00_00_FF != -1) {
|
||||
dScGame_c::getCamera(0)->getGameCam1()->fn_80080960(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;
|
||||
}
|
||||
|
||||
@@ -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 *) {}
|
||||
|
||||
|
||||
@@ -2,12 +2,21 @@
|
||||
|
||||
#include "common.h"
|
||||
|
||||
// TODO: Weak function order (CamView dtor needs to appear after a bunch of weak functions)
|
||||
// TODO: I'm not sure why all those weak functions even got emitted here, there's nothing
|
||||
// that forces the compiler to put anything here so using this as a hack. I really believe the
|
||||
// text split is correct, and this file doesn't appear to have any other sections.
|
||||
void CreatedCameraBase_cHack() {
|
||||
dCameraBase_c *c = new dCameraBase_c();
|
||||
// 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) {
|
||||
|
||||
@@ -3,11 +3,14 @@
|
||||
#include "toBeSorted/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.h"
|
||||
#include "d/col/bg/d_bg_s_lin_chk.h"
|
||||
#include "d/col/bg/d_bg_s_roof_chk.h"
|
||||
#include "d/col/bg/d_bg_s_sph_chk.h"
|
||||
#include "d/col/cc/d_cc_s.h"
|
||||
#include "d/d_bzs_types.h"
|
||||
#include "d/d_player_act.h"
|
||||
#include "d/d_room.h"
|
||||
@@ -15,6 +18,7 @@
|
||||
#include "d/d_stage.h"
|
||||
#include "m/m_angle.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/math/math_types.h"
|
||||
#include "sized_string.h"
|
||||
#include "toBeSorted/arc_managers/oarc_manager.h"
|
||||
#include "toBeSorted/attention.h"
|
||||
@@ -28,15 +32,333 @@ public:
|
||||
void remove();
|
||||
|
||||
public:
|
||||
/* 0x004 */ u8 _0x004[0x0E8 - 0x004];
|
||||
/* 0x004 */ u8 _0x004[0x0CE - 0x004];
|
||||
|
||||
/* 0x0CE */ s16 field_0x0CE;
|
||||
|
||||
/* 0x0D0 */ u8 _0x0D0[0x0E8 - 0x0D0];
|
||||
|
||||
/* 0x0E8 */ f32 field_0x0E8;
|
||||
|
||||
/* 0x0EC */ u8 _0x0EC[0x138 - 0x0EC];
|
||||
};
|
||||
|
||||
static dCameraGame_HIO_c sHio;
|
||||
dCameraGame_HIO_c::~dCameraGame_HIO_c() {}
|
||||
static dCameraGame_HIO_c sHio;
|
||||
|
||||
class GameCameraHandler {
|
||||
public:
|
||||
GameCameraHandler() : field_0x00(false), mStyleIdx(0), field_0x0C(0), mCounter(0) {}
|
||||
|
||||
bool doInit(dCameraGame_c *cam, u16 u3, UNKWORD u4);
|
||||
bool doExecute();
|
||||
|
||||
protected:
|
||||
/* 0x00 */ bool field_0x00;
|
||||
// vtable at 0x04
|
||||
/* vt 0x08 */ virtual bool init() {
|
||||
return true;
|
||||
}
|
||||
/* vt 0x0C */ virtual bool vt_0x0C() {
|
||||
return vt_0x10();
|
||||
}
|
||||
/* vt 0x10 */ virtual bool vt_0x10() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 0x08 */ u16 mStyleIdx;
|
||||
/* 0x0C */ UNKWORD field_0x0C;
|
||||
/* 0x10 */ CamId field_0x10;
|
||||
/* 0x18 */ dCamera_c *mpCamera;
|
||||
/* 0x1C */ dCameraGame_c *mpGameCamera;
|
||||
/* 0x20 */ dAcObjBase_c *field_0x20;
|
||||
/* 0x24 */ UNKWORD mCounter;
|
||||
};
|
||||
|
||||
// "Lockon"
|
||||
class GameCameraHandler03 : public GameCameraHandler {
|
||||
public:
|
||||
GameCameraHandler03() {}
|
||||
|
||||
virtual bool init() override;
|
||||
virtual bool vt_0x10() override;
|
||||
|
||||
private:
|
||||
/* 0x28 */ dAcRef_c<dAcObjBase_c> field_0x28;
|
||||
/* 0x34 */ dAcRef_c<dAcObjBase_c> field_0x34;
|
||||
/* 0x40 */ dPolar field_0x40;
|
||||
/* 0x4C */ u8 _0x4C[0xA8 - 0x4C];
|
||||
};
|
||||
|
||||
class GameCameraHandler00 : public GameCameraHandler {
|
||||
public:
|
||||
private:
|
||||
};
|
||||
|
||||
// "Chase"
|
||||
class GameCameraHandler01 : public GameCameraHandler {
|
||||
public:
|
||||
GameCameraHandler01() : field_0x2C(0.0f), field_0xAC(0.0f), field_0xB0(0.0f) {}
|
||||
|
||||
virtual bool init() override;
|
||||
virtual bool vt_0x0C() override;
|
||||
virtual bool vt_0x10() override;
|
||||
|
||||
private:
|
||||
/* 0x28 */ u8 _0x28[0x2C - 0x28];
|
||||
/* 0x2C */ f32 field_0x2C;
|
||||
/* 0x30 */ u8 _0x30[0xAC - 0x30];
|
||||
/* 0xAC */ f32 field_0xAC;
|
||||
/* 0xB0 */ f32 field_0xB0;
|
||||
/* 0xB4 */ u8 _0xB4[0xC0 - 0xB4];
|
||||
};
|
||||
|
||||
class GameCameraHandler02 : public GameCameraHandler {
|
||||
public:
|
||||
GameCameraHandler02() : field_0x6C(0.0f, 0.0f, 0.0f) {}
|
||||
|
||||
virtual bool init() override;
|
||||
virtual bool vt_0x0C() override;
|
||||
virtual bool vt_0x10() override;
|
||||
|
||||
private:
|
||||
struct UnkStruct {
|
||||
UnkStruct() : field_0x04(0.0f), field_0x08(0.0f), field_0x0C(0.0f) {}
|
||||
|
||||
/* 0x00 */ u8 _0x00[0x04 - 0x00];
|
||||
/* 0x04 */ f32 field_0x04;
|
||||
/* 0x08 */ f32 field_0x08;
|
||||
/* 0x0C */ f32 field_0x0C;
|
||||
/* 0x10 */ u8 _0x10[0x18 - 0x10];
|
||||
};
|
||||
|
||||
/* 0x28 */ u8 _0x28[0x6C - 0x28];
|
||||
/* 0x6C */ mVec3_c field_0x6C;
|
||||
/* 0x78 */ u8 _0x88[0x88 - 0x78];
|
||||
/* 0x88 */ dAcRef_c<dAcObjBase_c> mRef; // not sure
|
||||
/* 0x94 */ u8 _0x94[0xB0 - 0x94];
|
||||
/* 0xB0 */ UnkStruct field_0xB0[4];
|
||||
};
|
||||
|
||||
class GameCameraHandler04 : public GameCameraHandler {
|
||||
public:
|
||||
virtual bool init() override;
|
||||
virtual bool vt_0x10() override;
|
||||
|
||||
private:
|
||||
/* 0x28 */ u8 _0x28[0x6C - 0x28];
|
||||
/* 0x6C */ dPolar field_0x6C;
|
||||
};
|
||||
|
||||
class GameCameraHandler05 : public GameCameraHandler {
|
||||
public:
|
||||
virtual bool init() override;
|
||||
virtual bool vt_0x0C() override;
|
||||
virtual bool vt_0x10() override;
|
||||
|
||||
private:
|
||||
/* 0x28 */ u8 _0x28[0x6C - 0x28];
|
||||
/* 0x6C */ dPolar field_0x6C;
|
||||
/* 0x78 */ dAcRef_c<dAcObjBase_c> field_0x78;
|
||||
/* 0x84 */ u8 _0x84[0x8C - 0x84];
|
||||
};
|
||||
|
||||
class GameCameraHandler06 : public GameCameraHandler {
|
||||
public:
|
||||
GameCameraHandler06() : field_0x70(0.0f), field_0x9C(0.0f), field_0xA0(0.0f) {}
|
||||
|
||||
virtual bool init() override;
|
||||
virtual bool vt_0x0C() override;
|
||||
virtual bool vt_0x10() override;
|
||||
|
||||
private:
|
||||
/* 0x28 */ dAcRef_c<dAcObjBase_c> field_0x28;
|
||||
/* 0x34 */ u8 _0x34[0x4C - 0x34];
|
||||
/* 0x4C */ dPolar field_0x4C;
|
||||
/* 0x58 */ u8 _0x58[0x70 - 0x58];
|
||||
/* 0x70 */ f32 field_0x70;
|
||||
/* 0x74 */ u8 _0x74[0x9C - 0x74];
|
||||
/* 0x9C */ f32 field_0x9C;
|
||||
/* 0xA0 */ f32 field_0xA0;
|
||||
/* 0xA4 */ u8 _0xA4[0xB8 - 0xA4];
|
||||
};
|
||||
|
||||
class GameCameraHandler07 : public GameCameraHandler {
|
||||
public:
|
||||
virtual bool init() override;
|
||||
virtual bool vt_0x0C() override;
|
||||
virtual bool vt_0x10() override;
|
||||
|
||||
private:
|
||||
/* 0x28 */ dAcRef_c<dAcObjBase_c> field_0x28;
|
||||
/* 0x34 */ u8 _0x34[0x68 - 0x34];
|
||||
};
|
||||
|
||||
class GameCameraHandler08 : public GameCameraHandler {
|
||||
public:
|
||||
GameCameraHandler08() : field_0x78(0.0f) {}
|
||||
|
||||
virtual bool init() override;
|
||||
virtual bool vt_0x0C() override;
|
||||
virtual bool vt_0x10() override;
|
||||
|
||||
private:
|
||||
/* 0x28 */ dAcRef_c<dAcObjBase_c> field_0x28;
|
||||
/* 0x34 */ u8 _0x34[0x4C - 0x34];
|
||||
/* 0x4C */ dPolar field_0x4C;
|
||||
/* 0x58 */ u8 _0x58[0x78 - 0x58];
|
||||
/* 0x78 */ f32 field_0x78;
|
||||
/* 0x7C */ u8 _0x7C[0x94 - 0x7C];
|
||||
/* 0x94 */ dPolar field_0x94;
|
||||
};
|
||||
|
||||
class GameCameraHandler09 : public GameCameraHandler {
|
||||
public:
|
||||
GameCameraHandler09() : field_0x2C(0.0f) {}
|
||||
|
||||
virtual bool init() override;
|
||||
virtual bool vt_0x0C() override;
|
||||
virtual bool vt_0x10() override;
|
||||
|
||||
private:
|
||||
/* 0x28 */ u8 _0x28[0x2C - 0x28];
|
||||
/* 0x2C */ f32 field_0x2C;
|
||||
/* 0x30 */ u8 _0x30[0xA0 - 0x30];
|
||||
};
|
||||
|
||||
class GameCameraHandler10 : public GameCameraHandler {
|
||||
public:
|
||||
virtual bool init() override;
|
||||
virtual bool vt_0x0C() override;
|
||||
virtual bool vt_0x10() override;
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
class GameCameraHandler11 : public GameCameraHandler {
|
||||
public:
|
||||
GameCameraHandler11() : field_0x38(0.0f), field_0xC4(0.0f) {}
|
||||
|
||||
virtual bool init() override;
|
||||
virtual bool vt_0x0C() override;
|
||||
virtual bool vt_0x10() override;
|
||||
|
||||
private:
|
||||
/* 0x28 */ dAcRef_c<dAcObjBase_c> field_0x28;
|
||||
/* 0x34 */ u8 _0x34[0x38 - 0x24];
|
||||
/* 0x38 */ f32 field_0x38;
|
||||
/* 0x3C */ u8 _0x3C[0xC4 - 0x3C];
|
||||
/* 0xC4 */ f32 field_0xC4;
|
||||
};
|
||||
|
||||
class GameCameraHandler12 : public GameCameraHandler {
|
||||
public:
|
||||
virtual bool init() override;
|
||||
virtual bool vt_0x10() override;
|
||||
|
||||
private:
|
||||
/* 0x28 */ u8 _0x28[0x50 - 0x28];
|
||||
};
|
||||
|
||||
// TODO this sinit function is awful
|
||||
|
||||
f32 floats00[] = {0.0f};
|
||||
u16 flags00[] = {0};
|
||||
CamStyle style00(0, 0, floats00, ARRAY_LENGTH(floats00), flags00, 1);
|
||||
static UNKWORD word00;
|
||||
|
||||
f32 floats01[] = {
|
||||
0.0f, 400.0f, 400.0f, 0.5f, 20.0f, 20.0f, 0.25f, 10.0f, 10.0f, 0.25f,
|
||||
60.0f, 60.0f, 0.15f, 0.4f, 0.5f, 1.0f, 25.0f, 0.0f, 1.0f,
|
||||
};
|
||||
u16 flags01[] = {0x96};
|
||||
CamStyle style01(0, 0, floats01, ARRAY_LENGTH(floats01), flags01, 16);
|
||||
static UNKWORD word01;
|
||||
|
||||
f32 floats02[] = {
|
||||
0.0f, 0.0f, 20.0f, 0.0f, 50.0f, 0.0f, 20.0f, 8.0f,
|
||||
};
|
||||
u16 flags02[] = {0};
|
||||
CamStyle style02(0, 0, floats02, ARRAY_LENGTH(floats02), flags02, 14);
|
||||
static UNKWORD word02;
|
||||
|
||||
f32 floats03[] = {
|
||||
0.0f, 100.0f, 1000.0f, 0.1f, 400.0f, 400.0f, 0.2f, 0.0f, 0.0f, 0.4f, 10.0f, 10.0f,
|
||||
0.2f, 50.0f, 20.0f, 0.2f, 50.0f, 50.0f, 0.2f, 0.6f, 0.0f, 1.0f, 0.0f,
|
||||
};
|
||||
u16 flags03[] = {0x4A};
|
||||
CamStyle style03(0, 0, floats03, ARRAY_LENGTH(floats03), flags03, 8);
|
||||
static UNKWORD word03;
|
||||
|
||||
f32 floats04[] = {
|
||||
0.0f, 1.0f, 1.0f, 0.5f, 40.0f, 1000.0f,
|
||||
};
|
||||
u16 flags04[] = {0x00};
|
||||
CamStyle style04(0, 0, floats04, ARRAY_LENGTH(floats04), flags04, 2);
|
||||
static UNKWORD word04;
|
||||
|
||||
f32 floats05[] = {
|
||||
0.0f,
|
||||
50.0f,
|
||||
1.0f,
|
||||
1.0f,
|
||||
};
|
||||
u16 flags05[] = {0x2};
|
||||
CamStyle style05(0, 0, floats05, ARRAY_LENGTH(floats05), flags05, 4);
|
||||
static UNKWORD word05;
|
||||
|
||||
f32 floats06[] = {
|
||||
0.0f, 5.0f, 20.0f, 400.0f, 400.0f, 0.5f, 20.0f, 20.0f, 0.25f, 10.0f, 10.0f, 0.25f, 60.0f,
|
||||
60.0f, 0.15f, 0.4f, 0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.2f,
|
||||
};
|
||||
u16 flags06[] = {0x202};
|
||||
CamStyle style06(0, 0, floats06, ARRAY_LENGTH(floats06), flags06, 14);
|
||||
static UNKWORD word06;
|
||||
|
||||
f32 floats07[] = {
|
||||
0.0f, -1.0f, 0.0f, 1.0f, 0.5f,
|
||||
};
|
||||
u16 flags07[] = {0x2};
|
||||
CamStyle style07(0, 0, floats07, ARRAY_LENGTH(floats07), flags07, 4);
|
||||
static UNKWORD word07;
|
||||
|
||||
f32 floats08[] = {
|
||||
0.0f, 5.0f, 20.0f, 400.0f, 400.0f, 0.5f, 20.0f, 20.0f, 0.25f, 10.0f, 10.0f,
|
||||
0.25f, 60.0f, 60.0f, 0.15f, 0.4f, 0.5f, 1.0f, 0.0f, 0.0f, 0.0f,
|
||||
};
|
||||
u16 flags08[] = {0x6};
|
||||
CamStyle style08(0, 0, floats08, ARRAY_LENGTH(floats08), flags08, 3);
|
||||
static UNKWORD word08;
|
||||
|
||||
f32 floats09[] = {
|
||||
0.0f, 400.0f, 400.0f, 0.5f, 20.0f, 20.0f, 0.25f, 60.0f, 10.0f, 0.25f, 60.0f, 60.0f,
|
||||
0.15f, 0.4f, 0.5f, 0.75f, 25.0f, 1.0f, 500.0f, 150.0f, 250.0f, 0.0f, 150.0f, 1.0f,
|
||||
};
|
||||
u16 flags09[] = {0x46};
|
||||
CamStyle style09(0, 0, floats09, ARRAY_LENGTH(floats09), flags09, 7);
|
||||
static UNKWORD word09;
|
||||
|
||||
f32 floats10[] = {
|
||||
0.0f,
|
||||
};
|
||||
u16 flags10[] = {0x00};
|
||||
CamStyle style10(0, 0, floats10, ARRAY_LENGTH(floats10), flags10, 1);
|
||||
static UNKWORD word10;
|
||||
|
||||
f32 floats11[] = {
|
||||
0.0f, 1000.0f, 5000.0f, 400.0f, 400.0f, 0.5f, 20.0f, 20.0f, 0.25f, 10.0f, 10.0f, 0.25f, 60.0f,
|
||||
60.0f, 0.15f, 0.4f, 0.5f, 1.0f, 25.0f, 0.0f, 1.0f, 75.0f, 0.0f, 0.0f, 300.0f, 1500.0f,
|
||||
};
|
||||
u16 flags11[] = {0x116};
|
||||
CamStyle style11(0, 0, floats11, ARRAY_LENGTH(floats11), flags11, 10);
|
||||
static UNKWORD word11;
|
||||
|
||||
f32 floats12[] = {
|
||||
0.0f, 500.0f, 50.0f, 0.4f, 0.1f, 0.25f,
|
||||
};
|
||||
u16 flags12[] = {0x00};
|
||||
CamStyle style12(0, 0, floats12, ARRAY_LENGTH(floats12), flags12, 2);
|
||||
static UNKWORD word12;
|
||||
|
||||
CamParamHeader *dCameraGame_c::sHeader;
|
||||
f32 *dCameraGame_c::sFloats;
|
||||
@@ -47,10 +369,55 @@ CamParamTrend *dCameraGame_c::sTrends;
|
||||
s32 dCameraGame_c::sTrendIdxes[CAM_TREND_IDX_MAX];
|
||||
s32 dCameraGame_c::sStyleIdxes[CAM_STYLE_IDX_MAX];
|
||||
|
||||
dAcRef_c<dAcObjBase_c> sRef;
|
||||
|
||||
struct CamVecBundleNotSure {
|
||||
CamVecBundleNotSure(mVec3_c _00, mVec3_c _01, f32 _02, f32 _03)
|
||||
: field_0x00(_00), field_0x0C(_01), field_0x18(_02), field_0x1C(_03) {}
|
||||
/* 0x00 */ mVec3_c field_0x00;
|
||||
/* 0x0C */ mVec3_c field_0x0C;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1C;
|
||||
};
|
||||
|
||||
CamVecBundleNotSure sVecs1(mVec3_c(-550.0f, 500.0f, -1000.0f), mVec3_c(-150.0f, 320.0f, -350.0f), 60.0f, 0.0f);
|
||||
CamVecBundleNotSure sVecs2(mVec3_c(-550.0f, 500.0f, -1000.0f), mVec3_c(-150.0f, -100.0f, -350.0f), 60.0f, 0.0f);
|
||||
CamVecBundleNotSure sVecs3(mVec3_c(-900.0f, 680.0f, 850.0f), mVec3_c(-440.0f, 380.0f, 280.0f), 60.0f, 0.0f);
|
||||
CamVecBundleNotSure sVecs4(mVec3_c(-90.0f, 80.0f, -285.0f), mVec3_c(0.0f, 100.0f, 0.0f), 55.0f, 0.0f);
|
||||
|
||||
GameCameraHandler06 camHandlerUnused00;
|
||||
GameCameraHandler08 camHandlerUnused01;
|
||||
|
||||
GameCameraHandler00 camHandler00;
|
||||
GameCameraHandler01 camHandler01;
|
||||
GameCameraHandler02 camHandler02;
|
||||
GameCameraHandler03 camHandler03;
|
||||
GameCameraHandler04 camHandler04;
|
||||
GameCameraHandler05 camHandler05;
|
||||
GameCameraHandler06 camHandler06;
|
||||
GameCameraHandler07 camHandler07;
|
||||
GameCameraHandler08 camHandler08;
|
||||
GameCameraHandler09 camHandler09;
|
||||
GameCameraHandler10 camHandler10;
|
||||
GameCameraHandler11 camHandler11;
|
||||
GameCameraHandler12 camHandler12;
|
||||
|
||||
// clang-format off
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// START ACTUAL CODE //
|
||||
// //
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// clang-format on
|
||||
|
||||
void debugPrintf4(const char *fmt, ...) {
|
||||
// no-op
|
||||
}
|
||||
|
||||
void debugPrintf6(UNKWORD a, UNKWORD b, const char *fmt, ...) {
|
||||
// no-op
|
||||
}
|
||||
|
||||
static s32 getCurrentRoomId() {
|
||||
return dAcPy_c::GetLinkM()->mRoomID;
|
||||
}
|
||||
@@ -84,8 +451,8 @@ s32 dCameraGame_c::getTrendIndex(const char *name) {
|
||||
|
||||
s32 dCameraGame_c::getStyleIndex(u32 id) {
|
||||
for (int i = 0; i < sHeader->numStyles; i++) {
|
||||
// Temp needed... inline?
|
||||
s32 otherId = sStyles[i].id;
|
||||
// Temp needed...
|
||||
u32 otherId = *(u32 *)sStyles[i].id;
|
||||
if (otherId == id) {
|
||||
return i;
|
||||
}
|
||||
@@ -157,6 +524,246 @@ bool dCameraGame_c::initCamParamDat() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler::doInit(dCameraGame_c *cam, u16 u3, UNKWORD u4) {
|
||||
mStyleIdx = u3;
|
||||
field_0x0C = u4;
|
||||
mCounter = 0;
|
||||
field_0x00 = 0;
|
||||
field_0x20 = dAcPy_c::GetLinkM();
|
||||
mpCamera = dScGame_c::getCamera();
|
||||
mpGameCamera = cam;
|
||||
field_0x10 = cam->getCamId0x60();
|
||||
init();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler::doExecute() {
|
||||
field_0x20 = dAcPy_c::GetLinkM();
|
||||
if (!field_0x00) {
|
||||
field_0x00 = vt_0x0C();
|
||||
} else {
|
||||
field_0x00 = vt_0x10();
|
||||
}
|
||||
mCounter++;
|
||||
return field_0x00;
|
||||
}
|
||||
|
||||
bool GameCameraHandler03::init() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler03::vt_0x10() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler01::init() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler01::vt_0x0C() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler01::vt_0x10() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler02::init() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler02::vt_0x0C() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler02::vt_0x10() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler04::init() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler04::vt_0x10() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler05::init() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler05::vt_0x0C() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler05::vt_0x10() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler06::init() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler06::vt_0x0C() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler06::vt_0x10() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler07::init() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler07::vt_0x0C() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler07::vt_0x10() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler08::init() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler08::vt_0x0C() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler08::vt_0x10() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler09::init() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler09::vt_0x0C() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler09::vt_0x10() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler10::init() {
|
||||
// TODO - ...
|
||||
// style10.loadStyle(mStyleIdx);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler10::vt_0x0C() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler10::vt_0x10() {
|
||||
field_0x20 = dAcPy_c::GetLinkM();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler11::init() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler11::vt_0x0C() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler11::vt_0x10() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler12::init() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameCameraHandler12::vt_0x10() {
|
||||
// TODO - ...
|
||||
return true;
|
||||
}
|
||||
|
||||
struct CameraDefinition {
|
||||
/* 0x00 */ GameCameraHandler *pHandler;
|
||||
/* 0x04 */ UNKWORD id;
|
||||
/* 0x08 */ UNKWORD unk;
|
||||
/* 0x0C */ CamStyle *pStyle;
|
||||
};
|
||||
|
||||
CameraDefinition sCamDefs[] = {
|
||||
{&camHandler00, 0, word00, &style00},
|
||||
{&camHandler01, 1, word01, &style01},
|
||||
{&camHandler02, 2, word02, &style02},
|
||||
{&camHandler03, 3, word03, &style03},
|
||||
{&camHandler04, 4, word04, &style04},
|
||||
{&camHandler05, 5, word05, &style05},
|
||||
{&camHandler06, 6, word06, &style06},
|
||||
{&camHandler07, 7, word07, &style07},
|
||||
{&camHandler08, 8, word08, &style08},
|
||||
{&camHandler09, 9, word09, &style09},
|
||||
{&camHandler10, 10, word10, &style10},
|
||||
{&camHandler11, 11, word11, &style11},
|
||||
{&camHandler12, 12, word12, &style12},
|
||||
};
|
||||
|
||||
void CamStyle::loadStyle(u16 styleIdx) {
|
||||
mStyleIndex = styleIdx;
|
||||
mId[0] = dCameraGame_c::getStyle(styleIdx)->id[0];
|
||||
mId[1] = dCameraGame_c::getStyle(styleIdx)->id[1];
|
||||
mId[2] = dCameraGame_c::getStyle(styleIdx)->id[2];
|
||||
mId[3] = dCameraGame_c::getStyle(styleIdx)->id[3];
|
||||
mId[4] = '\0';
|
||||
mpParamFloats = dCameraGame_c::getFloats(dCameraGame_c::getStyle(styleIdx)->floatParamOffset);
|
||||
mpParamFlags = dCameraGame_c::getFlags(dCameraGame_c::getStyle(styleIdx)->flagParamOffset);
|
||||
|
||||
for (int i = 0; i < mNumFloats; i++) {
|
||||
mpFloats[i] = mpParamFloats[i];
|
||||
}
|
||||
|
||||
// TODO: Why 14???
|
||||
for (int i = 0; i < mNumFlags; i += 14) {
|
||||
mpFlags[i] = mpParamFlags[i];
|
||||
}
|
||||
}
|
||||
|
||||
f32 CamStyle::getFloat(s32 idx) const {
|
||||
return mpFloats[idx];
|
||||
}
|
||||
|
||||
bool CamStyle::getFlag(s32 flag) const {
|
||||
return ((1 << (flag & ((1 << 14) - 1))) & mpFlags[flag >> 14]) != 0;
|
||||
}
|
||||
|
||||
dCameraGame_HIO_c::dCameraGame_HIO_c() {
|
||||
// TODO - ...
|
||||
}
|
||||
@@ -243,7 +850,7 @@ void UnkCamChecks::fn_8007E1B0(dAcObjBase_c *ac) {
|
||||
if (mChk1.field_0x000 && ac == link && link->checkActionFlags(daPlayerActBase_c::FLG0_IN_WATER)) {
|
||||
mChk1.camId.roomCamId = dBgS::GetInstance()->GetRoomCamId(mChk1.chk);
|
||||
mChk1.camId.roomId = dBgS::GetInstance()->GetRoomId(mChk1.chk);
|
||||
if (!mChk1.camId.someCheck()) {
|
||||
if (!mChk1.camId.isValid()) {
|
||||
mChk1.camId.clear();
|
||||
}
|
||||
} else {
|
||||
@@ -255,7 +862,7 @@ void UnkCamChecks::fn_8007E1B0(dAcObjBase_c *ac) {
|
||||
} else if (mChk2.field_0x000) {
|
||||
mChk2.camId.roomCamId = dBgS::GetInstance()->GetRoomCamId(mChk2.chk);
|
||||
mChk2.camId.roomId = dBgS::GetInstance()->GetRoomId(mChk2.chk);
|
||||
if (!mChk2.camId.someCheck()) {
|
||||
if (!mChk2.camId.isValid()) {
|
||||
mChk2.camId.clear();
|
||||
}
|
||||
} else {
|
||||
@@ -352,42 +959,221 @@ bool dCameraGame_c::create() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dCameraGame_c::draw() {
|
||||
return true;
|
||||
bool dCameraGame_c::execute() {
|
||||
// TODO - ...
|
||||
}
|
||||
|
||||
// TODO: make these static when they're actually used
|
||||
|
||||
inline bool linChkAttentionTarget_(const mVec3_c &from, const mVec3_c &to, dBgS_LinChk &chk) {
|
||||
bool chkCamera(mVec3_c &v1, mVec3_c &v2, dAcObjBase_c *obj) {
|
||||
dAcPy_c *link = dAcPy_c::GetLinkM();
|
||||
bool isNotLink = obj != nullptr && obj != link;
|
||||
return dCcS::GetInstance()->ChkCamera(
|
||||
v1, v2, 15.0f, link, isNotLink ? obj : nullptr, (dAcObjBase_c *)link->getLinkage().mControllingActor.p_owner
|
||||
);
|
||||
}
|
||||
|
||||
bool chkCo(const mVec3_c &v1) {
|
||||
dAcPy_c *link = dAcPy_c::GetLinkM();
|
||||
return dCcS::GetInstance()->ChkCo(v1, link);
|
||||
}
|
||||
|
||||
bool chkCameraPoint(const mVec3_c &p2, const mVec3_c &p3, mVec3_c &result, dAcObjBase_c *obj) {
|
||||
mVec3_c v1 = p3;
|
||||
|
||||
// This matches but not sure about regalloc...
|
||||
dAcPy_c *link = dAcPy_c::LINK;
|
||||
int i;
|
||||
|
||||
dAcObjBase_c *other = nullptr;
|
||||
|
||||
if (obj != nullptr && obj != link) {
|
||||
other = obj;
|
||||
}
|
||||
|
||||
mVec3_c v2 = p3;
|
||||
|
||||
bool found;
|
||||
dAcObjBase_c *controllingActor = (dAcObjBase_c *)link->getLinkage().mControllingActor.p_owner;
|
||||
found = false;
|
||||
|
||||
mVec3_c ret;
|
||||
mVec3_c v3 = v2 - p2;
|
||||
v3.normalize();
|
||||
v3 *= 2.0f;
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
ret = v1;
|
||||
if (!dCcS::GetInstance()->ChkCameraPoint(p2, v2, v1, 15.0f, link, other, controllingActor)) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (p2 == v1) {
|
||||
break;
|
||||
}
|
||||
found = true;
|
||||
v2 = v1 - v3;
|
||||
}
|
||||
|
||||
if (found) {
|
||||
debugPrintf6(400, 300, "CO %d", i);
|
||||
result = ret;
|
||||
}
|
||||
return found;
|
||||
}
|
||||
|
||||
inline bool linCrossAttentionTarget_(const mVec3_c &from, const mVec3_c &to, dBgS_LinChk &chk) {
|
||||
dAcObjBase_c *ac = AttentionManager::GetInstance()->getTargetedActor();
|
||||
chk.Set(&from, &to, ac);
|
||||
return dBgS::GetInstance()->LineCross(&chk);
|
||||
}
|
||||
|
||||
bool linChkAttentionTarget(const mVec3_c &from, const mVec3_c &to, dBgS_LinChk &chk, UNKWORD _ignored) {
|
||||
return linChkAttentionTarget_(from, to, chk);
|
||||
bool linCrossAttentionTarget(const mVec3_c &from, const mVec3_c &to, dBgS_LinChk &chk, UNKWORD _ignored) {
|
||||
return linCrossAttentionTarget_(from, to, chk);
|
||||
}
|
||||
|
||||
bool linCross(dBgS_LinChk &chk, UNKWORD _ignored) {
|
||||
return dBgS::GetInstance()->LineCross(&chk);
|
||||
}
|
||||
|
||||
bool camLinChkAttentionTarget(const mVec3_c &from, const mVec3_c &to, UNKWORD _ignored) {
|
||||
bool linCrossAttentionTarget(const mVec3_c &from, const mVec3_c &to, UNKWORD _ignored) {
|
||||
dBgS_CamLinChk chk;
|
||||
return linChkAttentionTarget(from, to, chk, _ignored);
|
||||
return linCrossAttentionTarget(from, to, chk, _ignored);
|
||||
}
|
||||
|
||||
bool linCrossAttentionTarget(const mVec3_c &from, const mVec3_c &to, mVec3_c &result) {
|
||||
dBgS_CamLinChk chk;
|
||||
bool ret = linChkAttentionTarget_(from, to, chk);
|
||||
bool ret = linCrossAttentionTarget_(from, to, chk);
|
||||
if (ret) {
|
||||
result = chk.GetLinEnd();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool dCameraGame_c::execute() {
|
||||
u8 unkCamLineChk(dBgS_CamLinChk &chk1, dBgS_CamLinChk &chk2, u32 flags) {
|
||||
// TODO - ...
|
||||
return 'W';
|
||||
}
|
||||
|
||||
struct UnkCallbackArg {
|
||||
UnkCallbackArg() : field_0x08(nullptr) {}
|
||||
|
||||
void set(mVec3_c *v1, mVec3_c *v3, f32 f) {
|
||||
field_0x00 = v1;
|
||||
field_0x10 = v3;
|
||||
field_0x14 = mVec3_c::Zero;
|
||||
field_0x20 = mVec3_c::Zero;
|
||||
field_0x04 = f;
|
||||
field_0x08 = 0;
|
||||
field_0x0C = 0.0f;
|
||||
}
|
||||
|
||||
/* 0x00 */ mVec3_c *field_0x00;
|
||||
/* 0x04 */ f32 field_0x04;
|
||||
/* 0x08 */ UNKWORD field_0x08;
|
||||
/* 0x0C */ f32 field_0x0C;
|
||||
/* 0x10 */ mVec3_c *field_0x10;
|
||||
/* 0x14 */ mVec3_c field_0x14;
|
||||
/* 0x20 */ mVec3_c field_0x20;
|
||||
};
|
||||
|
||||
|
||||
void unkCamCallback1(dBgS_SphChk *, cBgD_Vtx_t *, int, int, int, cM3dGPla *plane, void *cbArg) {
|
||||
UnkCallbackArg *arg = static_cast<UnkCallbackArg*>(cbArg);
|
||||
f32 f = cM3d_SignedLenPlaAndPos(plane, arg->field_0x00);
|
||||
|
||||
// TODO Regswap
|
||||
if (plane->mD + nw4r::math::VEC3Dot(plane->mNormal, arg->field_0x10) >= -2.0f && f > -arg->field_0x04 && f < arg->field_0x04) {
|
||||
mVec3_c n = plane->mNormal;
|
||||
f32 t2 = (arg->field_0x04 + 0.001f - f);
|
||||
|
||||
if (arg->field_0x0C < t2) {
|
||||
arg->field_0x0C = t2;
|
||||
}
|
||||
|
||||
mVec3_c tmp = n * t2;
|
||||
arg->field_0x08++;
|
||||
if (tmp.x > arg->field_0x14.x) {
|
||||
arg->field_0x14.x = tmp.x;
|
||||
}
|
||||
if (tmp.y > arg->field_0x14.y) {
|
||||
arg->field_0x14.y = tmp.y;
|
||||
}
|
||||
if (tmp.z > arg->field_0x14.z) {
|
||||
arg->field_0x14.z = tmp.z;
|
||||
}
|
||||
if (tmp.x < arg->field_0x20.x) {
|
||||
arg->field_0x20.x = tmp.x;
|
||||
}
|
||||
if (tmp.y < arg->field_0x20.y) {
|
||||
arg->field_0x20.y = tmp.y;
|
||||
}
|
||||
if (tmp.z < arg->field_0x20.z) {
|
||||
arg->field_0x20.z = tmp.z;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void unkCamCallback2(dBgS_SphChk *, cBgD_Vtx_t *, int, int, int, cM3dGPla *plane, void *cbArg) {
|
||||
UnkCallbackArg *arg = static_cast<UnkCallbackArg*>(cbArg);
|
||||
f32 f = cM3d_SignedLenPlaAndPos(plane, arg->field_0x00);
|
||||
|
||||
// TODO Regswap
|
||||
if (plane->mD + nw4r::math::VEC3Dot(plane->mNormal, arg->field_0x10) >= -2.0f && f > -arg->field_0x04 && f < arg->field_0x04) {
|
||||
mVec3_c n = plane->mNormal;
|
||||
mVec3_c tmp = n * (arg->field_0x04 + 0.001f - f);
|
||||
arg->field_0x08++;
|
||||
if (std::fabsf(tmp.x) > arg->field_0x14.x) {
|
||||
arg->field_0x14.x = tmp.x;
|
||||
}
|
||||
if (std::fabsf(tmp.y) > arg->field_0x14.y) {
|
||||
arg->field_0x14.y = tmp.y;
|
||||
}
|
||||
if (std::fabsf(tmp.z) > arg->field_0x14.z) {
|
||||
arg->field_0x14.z = tmp.z;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void fn_8007FE10(mVec3_c &v1, mVec3_c &v2, mVec3_c &v3, f32 f) {
|
||||
v1 = v2;
|
||||
|
||||
dBgS_CamSphChk chk;
|
||||
UnkCallbackArg arg;
|
||||
|
||||
chk.mCallback = unkCamCallback1;
|
||||
|
||||
for (int i = 0; i < sHio.field_0x0CE; i++) {
|
||||
arg.set(&v1, &v3, f);
|
||||
|
||||
chk.Set(&v1, f);
|
||||
|
||||
if (!dBgS::GetInstance()->SphChk(&chk, &arg)) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (arg.field_0x0C < 0.0f) {
|
||||
break;
|
||||
}
|
||||
|
||||
arg.field_0x14 += arg.field_0x20;
|
||||
arg.field_0x14.normalize();
|
||||
arg.field_0x14 *= arg.field_0x0C;
|
||||
v1 += arg.field_0x14;
|
||||
}
|
||||
|
||||
chk.mCallback = unkCamCallback2;
|
||||
chk.Set(&v1, f);
|
||||
arg.set(&v1, &v3, f);
|
||||
|
||||
if (dBgS::GetInstance()->SphChk(&chk, &arg)) {
|
||||
v1 += arg.field_0x14;
|
||||
}
|
||||
}
|
||||
|
||||
bool dCameraGame_c::draw() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dCameraGame_c::remove() {
|
||||
@@ -400,6 +1186,46 @@ bool dCameraGame_c::remove() {
|
||||
return true;
|
||||
}
|
||||
|
||||
void dCameraGame_c::overrideCam(s32 camId, s32 priority, s16 roomId, bool unk) {
|
||||
if (priority < field_0x094) {
|
||||
return;
|
||||
}
|
||||
|
||||
field_0x094 = priority;
|
||||
if (roomId < 0) {
|
||||
roomId = getCurrentRoomId();
|
||||
}
|
||||
|
||||
if (camId == -1) {
|
||||
if (field_0x086.isValid()) {
|
||||
field_0x086.clear();
|
||||
}
|
||||
} else {
|
||||
(void)getCam(camId, roomId);
|
||||
field_0x086.roomCamId = camId;
|
||||
field_0x086.roomId = roomId;
|
||||
s16 val = 1;
|
||||
if (unk) {
|
||||
val = 2;
|
||||
}
|
||||
field_0x086.field_0x04 = val;
|
||||
}
|
||||
}
|
||||
|
||||
void dCameraGame_c::setCam(s16 roomCamId, s16 roomId) {
|
||||
if (roomId < 0) {
|
||||
roomId = getCurrentRoomId();
|
||||
}
|
||||
(void)getCam(roomCamId, roomId);
|
||||
field_0x080.roomCamId = roomCamId;
|
||||
field_0x080.roomId = roomId;
|
||||
field_0x080.field_0x04 = 3;
|
||||
}
|
||||
|
||||
void dCameraGame_c::setCam(const CamId &id) {
|
||||
setCam(id.roomCamId, id.roomId);
|
||||
}
|
||||
|
||||
void dCameraGame_c::clearCamIds() {
|
||||
field_0x086.clear();
|
||||
field_0x080.clear();
|
||||
@@ -407,6 +1233,23 @@ void dCameraGame_c::clearCamIds() {
|
||||
mChk.field_0x16C.clear();
|
||||
}
|
||||
|
||||
CamId dCameraGame_c::getCamId() {
|
||||
CamId ret = field_0x060;
|
||||
if (field_0x080.isValid()) {
|
||||
ret = field_0x080;
|
||||
} else if (field_0x086.isValid()) {
|
||||
ret = field_0x086;
|
||||
} else if (mChk.field_0x164.isValid()) {
|
||||
ret = mChk.field_0x164;
|
||||
} else if (mChk.field_0x16C.isValid()) {
|
||||
ret = mChk.field_0x16C;
|
||||
} else {
|
||||
ret.clear();
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool dCameraGame_c::isCurrentTrend(const char *name) const {
|
||||
return getTrendIndex(name) == mCurrentTrendIdx;
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ mVec3_c fn_800929C0(const mVec3_c &p2, const mVec3_c &p3, dAcObjBase_c *obj) {
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
ret = v1;
|
||||
if (!dCcS::GetInstance()->ChkCameraPoint(p2, v2, v1, link, other, controllingActor, 15.0f)) {
|
||||
if (!dCcS::GetInstance()->ChkCameraPoint(p2, v2, v1, 15.0f, link, other, controllingActor)) {
|
||||
break;
|
||||
}
|
||||
if (p2 == v1) {
|
||||
|
||||
Reference in New Issue
Block a user