@@ -4291,23 +4291,23 @@ s32 Camera_Subj4(Camera* camera) {
42914291 sCameraInterfaceFlags = subj4 -> interfaceFlags ;
42924292 if (camera -> animState == 0 ) {
42934293 spA4 = Camera_GetCamBgDataUnderPlayer (camera , & spAA );
4294- Camera_Vec3sToVec3f (& anim -> unk_00 .a , & spA4 [1 ]);
4294+ Camera_Vec3sToVec3f (& anim -> unk_00 .point , & spA4 [1 ]);
42954295 Camera_Vec3sToVec3f (& sp98 , & spA4 [spAA - 2 ]);
42964296
42974297 sp64 .r = 10.0f ;
42984298 // 0x238C ~ 50 degrees
42994299 sp64 .pitch = 0x238C ;
4300- sp64 .yaw = Camera_XZAngle (& sp98 , & anim -> unk_00 .a );
4301- sp88 = OLib_Vec3fDist (& playerPosRot -> pos , & anim -> unk_00 .a );
4300+ sp64 .yaw = Camera_XZAngle (& sp98 , & anim -> unk_00 .point );
4301+ sp88 = OLib_Vec3fDist (& playerPosRot -> pos , & anim -> unk_00 .point );
43024302 if (OLib_Vec3fDist (& playerPosRot -> pos , & sp98 ) < sp88 ) {
4303- anim -> unk_00 .b .x = anim -> unk_00 .a .x - sp98 .x ;
4304- anim -> unk_00 .b .y = anim -> unk_00 .a .y - sp98 .y ;
4305- anim -> unk_00 .b .z = anim -> unk_00 .a .z - sp98 .z ;
4306- anim -> unk_00 .a = sp98 ;
4303+ anim -> unk_00 .dir .x = anim -> unk_00 .point .x - sp98 .x ;
4304+ anim -> unk_00 .dir .y = anim -> unk_00 .point .y - sp98 .y ;
4305+ anim -> unk_00 .dir .z = anim -> unk_00 .point .z - sp98 .z ;
4306+ anim -> unk_00 .point = sp98 ;
43074307 } else {
4308- anim -> unk_00 .b .x = sp98 .x - anim -> unk_00 .a .x ;
4309- anim -> unk_00 .b .y = sp98 .y - anim -> unk_00 .a .y ;
4310- anim -> unk_00 .b .z = sp98 .z - anim -> unk_00 .a .z ;
4308+ anim -> unk_00 .dir .x = sp98 .x - anim -> unk_00 .point .x ;
4309+ anim -> unk_00 .dir .y = sp98 .y - anim -> unk_00 .point .y ;
4310+ anim -> unk_00 .dir .z = sp98 .z - anim -> unk_00 .point .z ;
43114311 sp64 .yaw = BINANG_ROT180 (sp64 .yaw );
43124312 }
43134313 anim -> unk_30 = sp64 .yaw ;
@@ -4340,9 +4340,9 @@ s32 Camera_Subj4(Camera* camera) {
43404340
43414341 Actor_GetWorldPosShapeRot (& sp6C , & camera -> player -> actor );
43424342 Math3D_LineClosestToPoint (& anim -> unk_00 , & sp6C .pos , eyeNext );
4343- at -> x = eyeNext -> x + anim -> unk_00 .b .x ;
4344- at -> y = eyeNext -> y + anim -> unk_00 .b .y ;
4345- at -> z = eyeNext -> z + anim -> unk_00 .b .z ;
4343+ at -> x = eyeNext -> x + anim -> unk_00 .dir .x ;
4344+ at -> y = eyeNext -> y + anim -> unk_00 .dir .y ;
4345+ at -> z = eyeNext -> z + anim -> unk_00 .dir .z ;
43464346 * eye = * eyeNext ;
43474347 sp64 .yaw = anim -> unk_30 ;
43484348 sp64 .r = 5.0f ;
@@ -4792,9 +4792,9 @@ s32 Camera_Unique0(Camera* camera) {
47924792 func_80043B60 (camera );
47934793 camera -> unk_14C &= ~4 ;
47944794 sceneCamData = Camera_GetCamBGData (camera );
4795- Camera_Vec3sToVec3f (& anim -> sceneCamPosPlayerLine .a , & BGCAM_POS (sceneCamData ));
4795+ Camera_Vec3sToVec3f (& anim -> sceneCamPosPlayerLine .point , & BGCAM_POS (sceneCamData ));
47964796
4797- * eye = camera -> eyeNext = anim -> sceneCamPosPlayerLine .a ;
4797+ * eye = camera -> eyeNext = anim -> sceneCamPosPlayerLine .point ;
47984798 sceneCamRot = BGCAM_ROT (sceneCamData );
47994799 fov = BGCAM_FOV (sceneCamData );
48004800 if (fov != -1 ) {
@@ -4807,7 +4807,7 @@ s32 Camera_Unique0(Camera* camera) {
48074807 atPlayerOffset .r = OLib_Vec3fDist (& playerPosWithOffset , eye );
48084808 atPlayerOffset .yaw = sceneCamRot .y ;
48094809 atPlayerOffset .pitch = - sceneCamRot .x ;
4810- OLib_VecSphGeoToVec3f (& anim -> sceneCamPosPlayerLine .b , & atPlayerOffset );
4810+ OLib_VecSphGeoToVec3f (& anim -> sceneCamPosPlayerLine .dir , & atPlayerOffset );
48114811 Math3D_LineClosestToPoint (& anim -> sceneCamPosPlayerLine , & playerPosRot -> pos , & camera -> at );
48124812 anim -> initalPos = playerPosRot -> pos ;
48134813 camera -> animState ++ ;
@@ -5814,12 +5814,14 @@ s32 Camera_Demo5(Camera* camera) {
58145814 f32 sp90 ;
58155815 VecSph playerTargetGeo ;
58165816 VecSph eyePlayerGeo ;
5817- VecSph sp78 ;
5817+ s16 targetScreenPosX ;
5818+ s16 targetScreenPosY ;
5819+ s32 pad1 ;
58185820 PosRot playerhead ;
58195821 PosRot targethead ;
58205822 Player * player ;
58215823 s16 sp4A ;
5822- s32 pad ;
5824+ s32 framesDiff ;
58235825 s32 temp_v0 ;
58245826 s16 t ;
58255827 s32 pad2 ;
@@ -5837,7 +5839,7 @@ s32 Camera_Demo5(Camera* camera) {
58375839 Actor_GetFocus (& camera -> targetPosRot , camera -> target );
58385840 OLib_Vec3fDiffToVecSphGeo (& playerTargetGeo , & camera -> targetPosRot .pos , & camera -> playerPosRot .pos );
58395841 D_8011D3AC = camera -> target -> category ;
5840- Actor_GetScreenPos (camera -> globalCtx , camera -> target , & sp78 . yaw , & sp78 . pitch );
5842+ Actor_GetScreenPos (camera -> globalCtx , camera -> target , & targetScreenPosX , & targetScreenPosY );
58415843 eyeTargetDist = OLib_Vec3fDist (& camera -> targetPosRot .pos , & camera -> eye );
58425844 OLib_Vec3fDiffToVecSphGeo (& eyePlayerGeo , & playerhead .pos , & camera -> eyeNext );
58435845 sp4A = eyePlayerGeo .yaw - playerTargetGeo .yaw ;
@@ -5869,7 +5871,8 @@ s32 Camera_Demo5(Camera* camera) {
58695871 // distance between player and target is less than 30 units.
58705872 ONEPOINT_CS_INFO (camera )-> keyFrames = D_8011D79C ;
58715873 ONEPOINT_CS_INFO (camera )-> keyFrameCnt = ARRAY_COUNT (D_8011D79C );
5872- if ((sp78 .yaw < 0x15 ) || (sp78 .yaw >= 0x12C ) || (sp78 .pitch < 0x29 ) || (sp78 .pitch >= 0xC8 )) {
5874+ if ((targetScreenPosX < 0x15 ) || (targetScreenPosX >= 0x12C ) || (targetScreenPosY < 0x29 ) ||
5875+ (targetScreenPosY >= 0xC8 )) {
58735876 D_8011D79C [0 ].actionFlags = 0x41 ;
58745877 D_8011D79C [0 ].atTargetInit .y = -30.0f ;
58755878 D_8011D79C [0 ].atTargetInit .x = 0.0f ;
@@ -5901,7 +5904,8 @@ s32 Camera_Demo5(Camera* camera) {
59015904 // The distance between the camera's current position and the target is less than 700 units
59025905 // and the angle between the camera's position and the player, and the player to the target
59035906 // is less than ~76.9 degrees
5904- if (sp78 .yaw >= 0x15 && sp78 .yaw < 0x12C && sp78 .pitch >= 0x29 && sp78 .pitch < 0xC8 && eyePlayerGeo .r > 30.0f ) {
5907+ if (targetScreenPosX >= 0x15 && targetScreenPosX < 0x12C && targetScreenPosY >= 0x29 &&
5908+ targetScreenPosY < 0xC8 && eyePlayerGeo .r > 30.0f ) {
59055909 D_8011D88C [0 ].timerInit = camera -> timer ;
59065910 ONEPOINT_CS_INFO (camera )-> keyFrames = D_8011D88C ;
59075911 ONEPOINT_CS_INFO (camera )-> keyFrameCnt = ARRAY_COUNT (D_8011D88C );
@@ -5997,8 +6001,8 @@ s32 Camera_Demo5(Camera* camera) {
59976001 }
59986002 }
59996003
6000- pad = sDemo5PrevSfxFrame - camera -> globalCtx -> state .frames ;
6001- if ((pad >= 0x33 ) || (pad < -0x32 )) {
6004+ framesDiff = sDemo5PrevSfxFrame - camera -> globalCtx -> state .frames ;
6005+ if ((framesDiff > 50 ) || (framesDiff < -50 )) {
60026006 func_80078884 (camera -> data1 );
60036007 }
60046008
@@ -6012,11 +6016,11 @@ s32 Camera_Demo5(Camera* camera) {
60126016 } else {
60136017 sp4A = playerhead .rot .y - playerTargetGeo .yaw ;
60146018 if (camera -> target -> category == ACTORCAT_PLAYER ) {
6015- pad = camera -> globalCtx -> state .frames - sDemo5PrevAction12Frame ;
6019+ framesDiff = camera -> globalCtx -> state .frames - sDemo5PrevAction12Frame ;
60166020 if (player -> stateFlags1 & PLAYER_STATE1_11 ) {
60176021 // holding object over head.
60186022 func_8002DF54 (camera -> globalCtx , camera -> target , 8 );
6019- } else if (ABS (pad ) > 3000 ) {
6023+ } else if (ABS (framesDiff ) > 3000 ) {
60206024 func_8002DF54 (camera -> globalCtx , camera -> target , 12 );
60216025 } else {
60226026 func_8002DF54 (camera -> globalCtx , camera -> target , 69 );
0 commit comments