diff options
| author | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2025-12-04 19:03:13 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-04 16:03:13 -0800 |
| commit | 7fe9a68a9d47750fa0b3956349260fc4e3968047 (patch) | |
| tree | e1e8325785a4466c34ac3ec6ce5e80fa0619d762 /src/d/actor/d_a_b_bq.cpp | |
| parent | 4d3f25d34ed0782ba693c80698631cac6add8f9c (diff) | |
d_a_horse 100% (#2912)
* Fix missing line numbers for debug
* Fix horse inlines and HIO
* Match daHorse_c::setEffect
* Improve a few debug matches
* Match daHorse_c::checkHorseNoMove (half fake)
* Update configure.py
Diffstat (limited to 'src/d/actor/d_a_b_bq.cpp')
| -rw-r--r-- | src/d/actor/d_a_b_bq.cpp | 149 |
1 files changed, 77 insertions, 72 deletions
diff --git a/src/d/actor/d_a_b_bq.cpp b/src/d/actor/d_a_b_bq.cpp index b972f72a83..f8737b9570 100644 --- a/src/d/actor/d_a_b_bq.cpp +++ b/src/d/actor/d_a_b_bq.cpp @@ -1254,7 +1254,7 @@ static void demo_camera(b_bq_class* i_this) { i_this->mDemoCamEye.z = tentacle->current.pos.z + i_this->field_0x1298; i_this->mDemoCamCenter.x = tentacle->current.pos.x; - i_this->mDemoCamCenter.y = tentacle->current.pos.y; + i_this->mDemoCamCenter.y = tentacle->current.pos.y + ZREG_F(1); i_this->mDemoCamCenter.z = tentacle->current.pos.z; } else { spFC = tentacle->current.pos; @@ -1423,10 +1423,10 @@ static void demo_camera(b_bq_class* i_this) { i_this->mDemoCamEye = camera0->lookat.eye; i_this->mDemoCamCenter = camera0->lookat.center; - dComIfGp_getEvent().startCheckSkipEdge(i_this); + dComIfGp_getEvent().startCheckSkipEdge(a_this); // fallthrough case 11: - if (i_this->mDemoModeTimer == VREG_S(0) + 8) { + if (i_this->mDemoModeTimer == (s16)(VREG_S(0) + 8)) { daPy_getPlayerActorClass()->changeDemoMode(0x19, 0, 0, 0); } @@ -1444,11 +1444,11 @@ static void demo_camera(b_bq_class* i_this) { i_this->mDemoCamEyeTarget.set(240.0f, 274.0f, 2075.0f); i_this->field_0x1288.x = - std::fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x); + fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x); i_this->field_0x1288.y = - std::fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y); + fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y); i_this->field_0x1288.z = - std::fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z); + fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z); } spFC.set(0.0f, 0.0f, 1700.0f); @@ -1464,10 +1464,12 @@ static void demo_camera(b_bq_class* i_this) { spF0 = i_this->mDemoCamCenterTarget - i_this->mDemoCamCenter; f32 temp_f30 = spF0.abs(); - var_f31 = temp_f31 * (BREG_F(19) + 0.1f) * cM_ssin((temp_f30 / temp_f31) * (f32)0x8000); + f32 f28 = temp_f31 * (BREG_F(19) + 0.1f); + s16 sp0C = (temp_f30 / temp_f31) * (f32)0x8000; + var_f31 = f28 * cM_ssin(sp0C); } - if (i_this->mDemoModeTimer != VREG_S(8) + 320) { + if (i_this->mDemoModeTimer != (s16)(VREG_S(8) + 320)) { break; } @@ -1476,32 +1478,32 @@ static void demo_camera(b_bq_class* i_this) { i_this->mDemoCamCenterTarget.set(76.0f, 204.0f, 1782.0f); i_this->mDemoCamEyeTarget.set(-41.0f, 261.0f, 2095.0f); - i_this->field_0x127c.x = std::fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x); - i_this->field_0x127c.y = std::fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y); - i_this->field_0x127c.z = std::fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z); + i_this->field_0x127c.x = fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x); + i_this->field_0x127c.y = fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y); + i_this->field_0x127c.z = fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z); i_this->field_0x1288.x = - std::fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x); + fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x); i_this->field_0x1288.y = - std::fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y); + fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y); i_this->field_0x1288.z = - std::fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z); + fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z); i_this->field_0x129c = 0.0f; i_this->mDemoMode = 12; i_this->mDemoModeTimer = 0; // fallthrough case 12: - if (i_this->mDemoModeTimer == 260) { + if (i_this->mDemoModeTimer == (s16)(VREG_S(0) + 260)) { i_this->field_0x6f9 = 2; } cam_3d_morf(i_this, 0.1f); cLib_addCalc2(&i_this->field_0x129c, 0.005f, 1.0f, 0.00015f); - if (i_this->mDemoModeTimer == VREG_S(2) + 340) { + if (i_this->mDemoModeTimer == (s16)(VREG_S(2) + 340)) { i_this->mDemoCamCenter = tentacle->current.pos; - i_this->mDemoCamCenter.y = 0.0f; + i_this->mDemoCamCenter.y = VREG_F(6) + 0.0f; i_this->mDemoCamEye.set(1394.0f, 313.0f, -300.0f); i_this->mDemoMode = 13; @@ -1537,43 +1539,43 @@ static void demo_camera(b_bq_class* i_this) { dComIfGp_getVibration().StopQuake(31); } - if (i_this->mDemoModeTimer == VREG_S(2) + 100) { + if (i_this->mDemoModeTimer == (s16)(VREG_S(2) + 100)) { i_this->field_0x6f9 = 2; } - if (i_this->mDemoModeTimer == VREG_S(4) + 53) { + if (i_this->mDemoModeTimer == (s16)(VREG_S(4) + 53)) { i_this->mColpatType = 15; } - if (i_this->mDemoModeTimer >= VREG_S(3) + 110) { + if (i_this->mDemoModeTimer >= (s16)(VREG_S(3) + 110)) { cLib_addCalc2(&i_this->mDemoCamCenter.x, tentacle->current.pos.x, 0.1f, - VREG_S(5) + 20.0f); + VREG_F(5) + 20.0f); if (tentacle->current.pos.y + 100.0f > 0.0f) { cLib_addCalc2(&i_this->mDemoCamCenter.y, tentacle->current.pos.y + 100.0f, 0.8f, - VREG_S(5) + 60.0f); + VREG_F(5) + 60.0f); } cLib_addCalc2(&i_this->mDemoCamCenter.z, tentacle->current.pos.z, 0.1f, - VREG_S(5) + 20.0f); + VREG_F(5) + 20.0f); - if (i_this->mDemoModeTimer == VREG_S(4) + 113) { + if (i_this->mDemoModeTimer == (s16)(VREG_S(4) + 113)) { i_this->field_0x6f9 = 2; i_this->mColpatType = 1; } - if (i_this->mDemoModeTimer >= VREG_S(5) + 150) { - cLib_addCalc2(&i_this->mDemoCamEye.y, VREG_S(6) + 1413.0f, 0.1f, - i_this->field_0x129c * (VREG_S(7) + 40.0f)); + if (i_this->mDemoModeTimer >= (s16)(VREG_S(5) + 150)) { + cLib_addCalc2(&i_this->mDemoCamEye.y, VREG_F(6) + 1413.0f, 0.1f, + i_this->field_0x129c * (VREG_F(7) + 40.0f)); cLib_addCalc2(&i_this->field_0x129c, 1.0f, 1.0f, 0.02f); - if (i_this->mDemoModeTimer == VREG_S(6) + 200) { + if (i_this->mDemoModeTimer == (s16)(VREG_S(6) + 200)) { daPy_getPlayerActorClass()->changeDemoMode(0x17, 1, 2, 0); } } } - if (i_this->mDemoModeTimer != VREG_S(7) + 280) { + if (i_this->mDemoModeTimer != (s16)(VREG_S(7) + 280)) { break; } @@ -1582,16 +1584,16 @@ static void demo_camera(b_bq_class* i_this) { i_this->mDemoCamCenterTarget.set(0.0f, 278.0f, 1252.0f); i_this->mDemoCamEyeTarget.set(0.0f, 86.0f, 2167.0f); - i_this->field_0x127c.x = std::fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x); - i_this->field_0x127c.y = std::fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y); - i_this->field_0x127c.z = std::fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z); + i_this->field_0x127c.x = fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x); + i_this->field_0x127c.y = fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y); + i_this->field_0x127c.z = fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z); i_this->field_0x1288.x = - std::fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x); + fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x); i_this->field_0x1288.y = - std::fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y); + fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y); i_this->field_0x1288.z = - std::fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z); + fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z); i_this->field_0x129c = 0.0f; i_this->mDemoMode = 14; @@ -1739,16 +1741,16 @@ static void demo_camera(b_bq_class* i_this) { i_this->mDemoCamCenterTarget.set(-2243.0f, 1340.0f, 977.0f); i_this->mDemoCamEyeTarget.set(-1226.0f, 980.0f, 1350.0f); - i_this->field_0x127c.x = std::fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x); - i_this->field_0x127c.y = std::fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y); - i_this->field_0x127c.z = std::fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z); + i_this->field_0x127c.x = fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x); + i_this->field_0x127c.y = fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y); + i_this->field_0x127c.z = fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z); i_this->field_0x1288.x = - std::fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x); + fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x); i_this->field_0x1288.y = - std::fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y); + fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y); i_this->field_0x1288.z = - std::fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z); + fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z); i_this->field_0x129c = 0.0f; i_this->mDemoMode = 34; @@ -1759,7 +1761,7 @@ static void demo_camera(b_bq_class* i_this) { cam_3d_morf(i_this, 0.2f); cLib_addCalc2(&i_this->field_0x129c, 0.1f, 1.0f, 0.005f); - if (i_this->mDemoModeTimer > JREG_S(7) + 133) { + if (i_this->mDemoModeTimer > (s16)(JREG_S(7) + 133)) { cLib_addCalc2(&i_this->mDemoCamFovy, 30.0f, 0.5f, 4.0f); } } @@ -1783,7 +1785,7 @@ static void demo_camera(b_bq_class* i_this) { mDoMtx_stack_c::multVecZero(&sp114); cLib_addCalc2(&i_this->mDemoCamCenter.x, sp114.x, BREG_F(14) + 0.6f, 100.0f); - cLib_addCalc2(&i_this->mDemoCamCenter.y, sp114.y + 200.0f + BREG_F(12), BREG_F(14) + 0.6f, + cLib_addCalc2(&i_this->mDemoCamCenter.y, sp114.y + 200.0f + JREG_F(12), BREG_F(14) + 0.6f, 100.0f); cLib_addCalc2(&i_this->mDemoCamCenter.z, sp114.z, BREG_F(14) + 0.6f, 100.0f); @@ -1812,9 +1814,9 @@ static void demo_camera(b_bq_class* i_this) { i_this->mDemoCamEye.set(95.0f, 50.0f, 2800.0f); i_this->mDemoCamEyeTarget.set(72.0f, 52.0f, 2153.0f); - i_this->field_0x127c.x = std::fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x); - i_this->field_0x127c.y = std::fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y); - i_this->field_0x127c.z = std::fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z); + i_this->field_0x127c.x = fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x); + i_this->field_0x127c.y = fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y); + i_this->field_0x127c.z = fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z); i_this->field_0x1288.set(0.0f, 0.0f, 0.0f); i_this->field_0x129c = 0.0f; @@ -1854,12 +1856,12 @@ static void demo_camera(b_bq_class* i_this) { i_this->mColpatType = 4; } - if (i_this->mDemoModeTimer >= TREG_S(5) + 380) { + if (i_this->mDemoModeTimer >= (s16)(TREG_S(5) + 380)) { cam_3d_morf(i_this, 0.1f); cLib_addCalc2(&i_this->field_0x129c, 0.05f, 1.0f, 0.001f); } - if (i_this->mDemoModeTimer == TREG_S(6) + 430) { + if (i_this->mDemoModeTimer == (s16)(TREG_S(6) + 430)) { i_this->field_0x5c8 = 1; i_this->field_0x5cc = a_this->eyePos; } @@ -1870,7 +1872,7 @@ static void demo_camera(b_bq_class* i_this) { spFC.set(BREG_F(5) + -30.0f, 0.0f, BREG_F(6) + 1938.0f); } - daPy_getPlayerActorClass()->setPlayerPosAndAngle(&spFC, 0x8000, 0); + daPy_getPlayerActorClass()->setPlayerPosAndAngle(&spFC, BREG_S(5) + 0x8000, 0); if (i_this->field_0x5c8 != 0) { i_this->field_0x5cc.y += i_this->field_0x5d8; @@ -1890,7 +1892,7 @@ static void demo_camera(b_bq_class* i_this) { } else { i_this->field_0x5d8 = 0.0f; } - } else if (i_this->mDemoModeTimer >= TREG_S(6) + 435) { + } else if (i_this->mDemoModeTimer >= (s16)(TREG_S(6) + 435)) { i_this->field_0x5cc.z += BREG_F(9) + 6.0f; } @@ -1923,8 +1925,11 @@ static void demo_camera(b_bq_class* i_this) { fopAcM_GetRoomNo(a_this), &a_this->shape_angle, &sp120, 0.0f, 0.0f, -1); - fopAcM_delete(fopAcM_SearchByID(i_this->mTentacleIDs[0])); - fopAcM_delete(fopAcM_SearchByID(i_this->mTentacleIDs[1])); + fopAc_ac_c* sp28; + sp28 = fopAcM_SearchByID(i_this->mTentacleIDs[0]); + fopAcM_delete(sp28); + sp28 = fopAcM_SearchByID(i_this->mTentacleIDs[1]); + fopAcM_delete(sp28); } if (i_this->mDemoModeTimer == 535) { @@ -1968,18 +1973,18 @@ static void demo_camera(b_bq_class* i_this) { i_this->mDemoCamEyeTarget.set(1214.0f, 350.0f, 2696.0f); i_this->field_0x127c.x = - std::fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x); + fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x); i_this->field_0x127c.y = - std::fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y); + fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y); i_this->field_0x127c.z = - std::fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z); + fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z); i_this->field_0x1288.x = - std::fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x); + fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x); i_this->field_0x1288.y = - std::fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y); + fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y); i_this->field_0x1288.z = - std::fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z); + fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z); i_this->field_0x129c = 0.0f; } else if (i_this->mDemoModeTimer < 140) { @@ -1988,18 +1993,18 @@ static void demo_camera(b_bq_class* i_this) { i_this->mDemoCamEyeTarget.set(23.0f, 108.0f, 2155.0f); i_this->field_0x127c.x = - std::fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x); + fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x); i_this->field_0x127c.y = - std::fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y); + fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y); i_this->field_0x127c.z = - std::fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z); + fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z); i_this->field_0x1288.x = - std::fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x); + fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x); i_this->field_0x1288.y = - std::fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y); + fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y); i_this->field_0x1288.z = - std::fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z); + fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z); } cam_3d_morf(i_this, 0.1f); @@ -2037,18 +2042,18 @@ static void demo_camera(b_bq_class* i_this) { i_this->mDemoCamEyeTarget.set(953.0f, 997.0f, -36.0f); i_this->field_0x127c.x = - std::fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x); + fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x); i_this->field_0x127c.y = - std::fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y); + fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y); i_this->field_0x127c.z = - std::fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z); + fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z); i_this->field_0x1288.x = - std::fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x); + fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x); i_this->field_0x1288.y = - std::fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y); + fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y); i_this->field_0x1288.z = - std::fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z); + fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z); cXyz pos(0.0f, 0.0f, 0.0f); for (int i = 0; i < 5; i++) { @@ -2123,7 +2128,7 @@ static void demo_camera(b_bq_class* i_this) { i_this->field_0x1151 = 1; dComIfGs_onStageBossEnemy(); - int sw = (fopAcM_GetParam(a_this) >> 0x10) & 0xFF; + int sw = (fopAcM_GetParam(a_this) & 0x00FF0000) >> 0x10; dComIfGs_offSwitch(sw, fopAcM_GetRoomNo(a_this)); fish_set(i_this); @@ -2136,7 +2141,7 @@ static void demo_camera(b_bq_class* i_this) { Z2GetAudioMgr()->subBgmStop(); OS_REPORT("//////////////B_BQ SKIP 11\n"); - int sw = (fopAcM_GetParam(a_this) >> 8) & 0xFF; + int sw = (fopAcM_GetParam(a_this) & 0x0000FF00) >> 8; dComIfGs_onSwitch(sw, fopAcM_GetRoomNo(a_this)); dStage_changeScene(1, 0.0f, 0, fopAcM_GetRoomNo(a_this), 0, -1); i_this->mDemoMode = 1000; |
