From d54cc35e8dcc6c6270188b51693bbbe01f75c4af Mon Sep 17 00:00:00 2001 From: Henrique Gemignani Passos Lima Date: Fri, 7 Oct 2022 02:12:59 +0300 Subject: [PATCH] Match CGunMotion::Update --- .../MetroidPrime/Weapons/GunController/CGunController.hpp | 2 +- src/MetroidPrime/Weapons/GunController/CGunController.cpp | 4 ++-- src/MetroidPrime/Weapons/GunController/CGunMotion.cpp | 8 +++++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/include/MetroidPrime/Weapons/GunController/CGunController.hpp b/include/MetroidPrime/Weapons/GunController/CGunController.hpp index 13017f22..97d71646 100644 --- a/include/MetroidPrime/Weapons/GunController/CGunController.hpp +++ b/include/MetroidPrime/Weapons/GunController/CGunController.hpp @@ -38,7 +38,7 @@ public: void EnterFidget(CStateManager&, int, int, int); void EnterStruck(CStateManager&, float); void LoadFidgetAnimAsync(CStateManager&, int, int, int); - bool Update(float, CStateManager&); + int Update(float, CStateManager&); void EnterIdle(CStateManager&); void ReturnToDefault(CStateManager&, float); void Reset(); diff --git a/src/MetroidPrime/Weapons/GunController/CGunController.cpp b/src/MetroidPrime/Weapons/GunController/CGunController.cpp index 43b98497..04e6c302 100644 --- a/src/MetroidPrime/Weapons/GunController/CGunController.cpp +++ b/src/MetroidPrime/Weapons/GunController/CGunController.cpp @@ -17,8 +17,8 @@ void CGunController::EnterStruck(CStateManager&, float) {} void CGunController::LoadFidgetAnimAsync(CStateManager&, int, int, int) {} -bool CGunController::Update(float, CStateManager&) { - return false; +int CGunController::Update(float, CStateManager&) { + return 0; } void CGunController::EnterIdle(CStateManager&) {} diff --git a/src/MetroidPrime/Weapons/GunController/CGunMotion.cpp b/src/MetroidPrime/Weapons/GunController/CGunMotion.cpp index 8da00e5a..e1de1934 100644 --- a/src/MetroidPrime/Weapons/GunController/CGunMotion.cpp +++ b/src/MetroidPrime/Weapons/GunController/CGunMotion.cpp @@ -63,7 +63,13 @@ bool CGunMotion::PlayPasAnim(SamusGun::EAnimationState state, CStateManager& mgr return loop; } -void CGunMotion::Update(float, CStateManager&) {} +void CGunMotion::Update(float dt, CStateManager& mgr) { + x0_modelData.AdvanceAnimation(dt, mgr, kInvalidAreaId, true); + switch (x4c_gunController.Update(dt, mgr)) { + case 1: + xb8_24_animPlaying = false; + } +} void CGunMotion::Draw(const CStateManager&, const CTransform4f&) const {}