mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 09:47:43 +00:00
Various bug fixes
This commit is contained in:
@@ -29,6 +29,7 @@ const float CPlayerCameraBob::kCameraDamping = 6.f * std::sqrt(80.f);
|
||||
CPlayerCameraBob::CPlayerCameraBob(ECameraBobType type, const zeus::CVector2f& vec, float bobPeriod)
|
||||
: x0_type(type), x4_vec(vec), xc_bobPeriod(bobPeriod)
|
||||
{
|
||||
std::fill(std::begin(x7c_wanderPoints), std::end(x7c_wanderPoints), zeus::CVector3f::skForward);
|
||||
}
|
||||
|
||||
zeus::CTransform CPlayerCameraBob::GetViewWanderTransform() const { return xd0_viewWanderXf; }
|
||||
@@ -107,19 +108,19 @@ void CPlayerCameraBob::UpdateViewWander(float dt, CStateManager& mgr)
|
||||
{
|
||||
zeus::CVector3f pt = zeus::getCatmullRomSplinePoint(
|
||||
x7c_wanderPoints[xcc_wanderIndex], x7c_wanderPoints[(xcc_wanderIndex + 1) & 3],
|
||||
x7c_wanderPoints[(xcc_wanderIndex + 2) & 3], x7c_wanderPoints[(xcc_wanderIndex + 3) & 3], dt);
|
||||
x7c_wanderPoints[(xcc_wanderIndex + 2) & 3], x7c_wanderPoints[(xcc_wanderIndex + 3) & 3], xc4_wanderTime);
|
||||
|
||||
pt.x *= x100_wanderMagnitude;
|
||||
pt.z *= x100_wanderMagnitude;
|
||||
zeus::CTransform orient = zeus::CTransform::RotateY((
|
||||
zeus::getCatmullRomSplinePoint(xb0_wanderPitches[xcc_wanderIndex], xb0_wanderPitches[(xcc_wanderIndex + 1) & 3],
|
||||
xb0_wanderPitches[(xcc_wanderIndex + 2) & 3],
|
||||
xb0_wanderPitches[(xcc_wanderIndex + 3) & 3], dt) *
|
||||
xb0_wanderPitches[(xcc_wanderIndex + 3) & 3], xc4_wanderTime) *
|
||||
x100_wanderMagnitude));
|
||||
xd0_viewWanderXf = zeus::lookAt(zeus::CVector3f::skZero, pt, zeus::CVector3f::skUp) * orient;
|
||||
|
||||
xc4_wanderTime = (xc8_viewWanderSpeed * xc4_wanderTime) + dt;
|
||||
if (xc4_wanderTime > 1.f)
|
||||
xc4_wanderTime += xc8_viewWanderSpeed * dt;
|
||||
if (xc4_wanderTime >= 1.f)
|
||||
{
|
||||
x7c_wanderPoints[xcc_wanderIndex] = CalculateRandomViewWanderPosition(mgr);
|
||||
xb0_wanderPitches[xcc_wanderIndex] = CalculateRandomViewWanderPitch(mgr);
|
||||
|
||||
Reference in New Issue
Block a user