diff --git a/Runtime/Camera/CCameraManager.cpp b/Runtime/Camera/CCameraManager.cpp index 6dc75e1b4..4ee95c092 100644 --- a/Runtime/Camera/CCameraManager.cpp +++ b/Runtime/Camera/CCameraManager.cpp @@ -1,5 +1,7 @@ #include "Runtime/Camera/CCameraManager.hpp" +#include + #include "Runtime/CStateManager.hpp" #include "Runtime/GameGlobalObjects.hpp" #include "Runtime/Camera/CBallCamera.hpp" @@ -37,12 +39,13 @@ zeus::CTransform CCameraManager::GetCurrentCameraTransform(const CStateManager& return camera->GetTransform() * zeus::CTransform::Translate(x30_shakeOffset); } -void CCameraManager::RemoveCameraShaker(int id) { - for (auto it = x14_shakers.begin(); it != x14_shakers.end(); ++it) - if (it->xbc_shakerId == id) { - x14_shakers.erase(it); - break; - } +void CCameraManager::RemoveCameraShaker(u32 id) { + const auto iter = std::find_if(x14_shakers.cbegin(), x14_shakers.cend(), + [id](const auto& shaker) { return shaker.xbc_shakerId == id; }); + if (iter == x14_shakers.cend()) { + return; + } + x14_shakers.erase(iter); } int CCameraManager::AddCameraShaker(const CCameraShakeData& data, bool sfx) { diff --git a/Runtime/Camera/CCameraManager.hpp b/Runtime/Camera/CCameraManager.hpp index fc15fb179..365a0742a 100644 --- a/Runtime/Camera/CCameraManager.hpp +++ b/Runtime/Camera/CCameraManager.hpp @@ -94,7 +94,7 @@ public: bool IsInFirstPersonCamera() const; zeus::CVector3f GetGlobalCameraTranslation(const CStateManager& stateMgr) const; zeus::CTransform GetCurrentCameraTransform(const CStateManager& stateMgr) const; - void RemoveCameraShaker(int id); + void RemoveCameraShaker(u32 id); int AddCameraShaker(const CCameraShakeData& data, bool sfx); void AddCinemaCamera(TUniqueId, CStateManager& stateMgr); void RemoveCinemaCamera(TUniqueId, CStateManager&);