From 3a1156cff2b9d645817d6c0d82b89987d52623de Mon Sep 17 00:00:00 2001 From: XProger Date: Fri, 1 Sep 2017 03:15:18 +0300 Subject: [PATCH] #8 rotate camera back when Lara moves --- src/camera.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/camera.h b/src/camera.h index 0e32019..be02779 100644 --- a/src/camera.h +++ b/src/camera.h @@ -49,6 +49,7 @@ struct Camera : Controller { room = level->entities[level->cutEntity].room; } else state = STATE_FOLLOW; + advTimer = -1.0f; } virtual ~Camera() { @@ -172,9 +173,7 @@ struct Camera : Controller { if (advAngleOld == advAngle) { if (advTimer > 0.0f) { - advTimer -= Core::deltaTime; - if (advTimer <= 0.0f) - advTimer = 0.0f; + advTimer = max(0.0f, advTimer - Core::deltaTime); } } else advTimer = -1.0f; @@ -182,6 +181,12 @@ struct Camera : Controller { if (owner->velocity != 0.0f && advTimer < 0.0f && !Input::down[ikMouseL]) advTimer = -advTimer; + if (advTimer == 0.0f && advAngle != 0.0f) { + float t = 10.0f * Core::deltaTime; + advAngle.x = lerp(clampAngle(advAngle.x), 0.0f, t); + advAngle.y = lerp(clampAngle(advAngle.y), 0.0f, t); + } + angle = owner->angle + advAngle; angle.z = 0.0f;