diff --git a/include/client/render/Renderer.h b/include/client/render/Renderer.h index 984f81f..154564a 100644 --- a/include/client/render/Renderer.h +++ b/include/client/render/Renderer.h @@ -58,6 +58,7 @@ public: void SetCamAngularMovement(const Vec2f& mov); void SetCamMovement(const Vec2f& lastCursorPos, const Vec2f& currentCursorPos); void SetCamLook(const Vec2f& worldPos); + void ResetCamLook(); void SetBackgroundColor(const Vec3f& color) { m_BackgroundColor = color; } diff --git a/include/client/render/WorldRenderer.h b/include/client/render/WorldRenderer.h index a76b4e5..7ac42e9 100644 --- a/include/client/render/WorldRenderer.h +++ b/include/client/render/WorldRenderer.h @@ -48,6 +48,7 @@ public: void Update(); void Render(); + void ResetCam(); void SetCamPos(float camX, float camY); void MoveCam(float relativeX, float relativeY); diff --git a/src/client/game/ClientGame.cpp b/src/client/game/ClientGame.cpp index d7fad0c..9413bce 100644 --- a/src/client/game/ClientGame.cpp +++ b/src/client/game/ClientGame.cpp @@ -117,6 +117,7 @@ void ClientGame::HandlePacket(const protocol::WorldDataPacket* packet) { m_WorldRenderer.LoadModels(); // set cam pos to player spawn const game::Spawn& spawn = m_World->GetTeam(m_Player->GetTeamColor()).GetSpawn(); + m_WorldRenderer.ResetCam(); m_WorldRenderer.SetCamPos(spawn.GetCenterX(), spawn.GetCenterY()); } diff --git a/src/client/render/Renderer.cpp b/src/client/render/Renderer.cpp index 26f5c42..8fbd0da 100644 --- a/src/client/render/Renderer.cpp +++ b/src/client/render/Renderer.cpp @@ -107,6 +107,10 @@ void Renderer::SetCamMovement(const Vec2f& lastCursorPos, const Vec2f& currentCu SetCamLook(m_Camera.CamLook - movement); } +void Renderer::ResetCamLook() { + m_Camera = Camera(); +} + void Renderer::SetCamPos(const Vec3f& newPos) { Vec3f front = { diff --git a/src/client/render/WorldRenderer.cpp b/src/client/render/WorldRenderer.cpp index bdf262b..5e6c742 100644 --- a/src/client/render/WorldRenderer.cpp +++ b/src/client/render/WorldRenderer.cpp @@ -130,6 +130,10 @@ void WorldRenderer::RenderTooltips() const { RenderCastleTooltip(); } +void WorldRenderer::ResetCam() { + m_Renderer->ResetCamLook(); +} + void WorldRenderer::MoveCam(float relativeX, float relativeY) { if (m_WorldVao == nullptr) return;