diff options
| author | robojumper <robojumper@gmail.com> | 2025-12-07 21:19:36 +0100 |
|---|---|---|
| committer | robojumper <robojumper@gmail.com> | 2025-12-21 21:41:54 +0100 |
| commit | 48ffb80264e66e22d4710189987d2c15ce343883 (patch) | |
| tree | 10c83607506ac3e8c855ebd25cd88cbd2643faef /src/d/lyt | |
| parent | 4bc36051dcb7127d22e4a4c0cc69eb868323c93b (diff) | |
d_lyt_drop_line OK
Diffstat (limited to 'src/d/lyt')
| -rw-r--r-- | src/d/lyt/d_lyt_drop_line.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/d/lyt/d_lyt_drop_line.cpp b/src/d/lyt/d_lyt_drop_line.cpp index 6d42e07f..2e14d14f 100644 --- a/src/d/lyt/d_lyt_drop_line.cpp +++ b/src/d/lyt/d_lyt_drop_line.cpp @@ -80,7 +80,7 @@ void dLytDropLineParts_c::startChange(mVec3_c startPos, s32 trial, bool leftRigh void dLytDropLineParts_c::reset() { mStartPos.setZero(); mEffectPos.setZero(); - field_0x8C.setZero(); + mMoveLinearCoeff.setZero(); mMoveTimer = 0; mTrial = 4; mMoveRequest = false; @@ -104,13 +104,13 @@ void dLytDropLineParts_c::initializeState_Move() { if (mpTargetPane != nullptr) { nw4r::math::MTX34 mtx = mpTargetPane->GetGlobalMtx(); - // TODO - mVec2_c v1 = mVec2_c(mtx._03, mtx._13); - v1 -= mVec2_c(mStartPos.x, mStartPos.y); + // Set up the coefficients for the quadratic parabola below + mVec3_c v1 = mVec3_c(mtx._03, mtx._13, 0.0f); - field_0x8C.x = - (v1.x + ((f32)sHio.mMoveDuration * sHio.field_0x04 * (f32)sHio.mMoveDuration)) / (f32)sHio.mMoveDuration; - field_0x8C.y = v1.y / (f32)sHio.mMoveDuration; + mMoveLinearCoeff.x = + ((v1.x - mStartPos.x) + (sHio.field_0x04 * (f32)sHio.mMoveDuration * (f32)sHio.mMoveDuration)) / + (f32)sHio.mMoveDuration; + mMoveLinearCoeff.y = (v1.y - mStartPos.y) / (f32)sHio.mMoveDuration; if (!mIsChangeAnim) { dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_SIREN_SHIZUKU_GET_MOVE); @@ -137,14 +137,14 @@ void dLytDropLineParts_c::executeState_Move() { if (mMoveTimer < sHio.mMoveDuration) { // Quadratic parabola if (mLeftRight) { - mEffectPos.x = mStartPos.x - - (field_0x8C.x * (f32)mMoveTimer - sHio.field_0x04 * (f32)mMoveTimer * (f32)mMoveTimer); + mEffectPos.x = mStartPos.x - (mMoveLinearCoeff.x * (f32)mMoveTimer - + sHio.field_0x04 * (f32)mMoveTimer * (f32)mMoveTimer); } else { - mEffectPos.x = - mStartPos.x + field_0x8C.x * (f32)mMoveTimer - sHio.field_0x04 * (f32)mMoveTimer * (f32)mMoveTimer; + mEffectPos.x = mStartPos.x + mMoveLinearCoeff.x * (f32)mMoveTimer - + sHio.field_0x04 * (f32)mMoveTimer * (f32)mMoveTimer; } - mEffectPos.y = mStartPos.y + field_0x8C.y * (f32)mMoveTimer; + mEffectPos.y = mStartPos.y + mMoveLinearCoeff.y * (f32)mMoveTimer; mEffectPos.z = 0.0f; mMoveTimer++; } else { |
