mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-07-07 15:25:53 +00:00
CGrenadeLauncher: Fix UpdateFollowPlayer
This commit is contained in:
parent
1dc90f78d3
commit
1f55b5f92e
@ -152,7 +152,7 @@ void CGrenadeLauncher::Think(float dt, CStateManager& mgr) {
|
|||||||
|
|
||||||
UpdateCollision();
|
UpdateCollision();
|
||||||
UpdateColor(dt);
|
UpdateColor(dt);
|
||||||
sub_8022f9e0(mgr, dt);
|
UpdateFollowPlayer(mgr, dt);
|
||||||
UpdateDamageTime(dt);
|
UpdateDamageTime(dt);
|
||||||
|
|
||||||
const SAdvancementDeltas& deltas = CActor::UpdateAnimation(dt, mgr, true);
|
const SAdvancementDeltas& deltas = CActor::UpdateAnimation(dt, mgr, true);
|
||||||
@ -212,14 +212,14 @@ void CGrenadeLauncher::CreateExplosion(CStateManager& mgr) {
|
|||||||
CSfxManager::SfxStart(x2d0_data.GetExplosionSfx(), 1.f, 1.f, false, 0x7f, false, kInvalidAreaId);
|
CSfxManager::SfxStart(x2d0_data.GetExplosionSfx(), 1.f, 1.f, false, 0x7f, false, kInvalidAreaId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGrenadeLauncher::sub_8022f9e0(CStateManager& mgr, float dt) {
|
void CGrenadeLauncher::UpdateFollowPlayer(CStateManager& mgr, float dt) {
|
||||||
CModelData* modelData = GetModelData();
|
CModelData* modelData = GetModelData();
|
||||||
CAnimData* animData = nullptr;
|
CAnimData* animData = nullptr;
|
||||||
|
|
||||||
if (modelData != nullptr && (animData = modelData->GetAnimationData()) != nullptr && x258_started == 1 &&
|
if (modelData != nullptr && (animData = modelData->GetAnimationData()) != nullptr && x258_started == 1 &&
|
||||||
x3fe_followPlayer) {
|
x3fe_followPlayer) {
|
||||||
const zeus::CVector3f target = mgr.GetPlayer().GetAimPosition(mgr, 0.f) - GetTranslation();
|
const zeus::CVector3f target = mgr.GetPlayer().GetAimPosition(mgr, 0.f) - GetTranslation();
|
||||||
const zeus::CVector3f rot = GetTransform().rotate({target.x(), target.y(), 0.f}); // TODO double check
|
const zeus::CVector3f rot = GetTransform().transposeRotate({target.x(), target.y(), 0.f});
|
||||||
|
|
||||||
if (rot.canBeNormalized()) {
|
if (rot.canBeNormalized()) {
|
||||||
constexpr float p36d = zeus::degToRad(36.476f);
|
constexpr float p36d = zeus::degToRad(36.476f);
|
||||||
|
@ -121,7 +121,7 @@ private:
|
|||||||
void UpdateColor(float arg);
|
void UpdateColor(float arg);
|
||||||
void UpdateDamageTime(float arg);
|
void UpdateDamageTime(float arg);
|
||||||
void CreateExplosion(CStateManager& mgr);
|
void CreateExplosion(CStateManager& mgr);
|
||||||
void sub_8022f9e0(CStateManager& mgr, float dt);
|
void UpdateFollowPlayer(CStateManager& mgr, float dt);
|
||||||
void sub_80230438();
|
void sub_80230438();
|
||||||
void LaunchGrenade(CStateManager& mgr);
|
void LaunchGrenade(CStateManager& mgr);
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user