1
0
mirror of https://github.com/XProger/OpenLara.git synced 2025-08-14 00:54:05 +02:00

#8 rotate camera back when Lara moves

This commit is contained in:
XProger
2017-09-01 03:15:18 +03:00
parent bb486dfa26
commit 3a1156cff2

View File

@@ -49,6 +49,7 @@ struct Camera : Controller {
room = level->entities[level->cutEntity].room; room = level->entities[level->cutEntity].room;
} else } else
state = STATE_FOLLOW; state = STATE_FOLLOW;
advTimer = -1.0f;
} }
virtual ~Camera() { virtual ~Camera() {
@@ -172,9 +173,7 @@ struct Camera : Controller {
if (advAngleOld == advAngle) { if (advAngleOld == advAngle) {
if (advTimer > 0.0f) { if (advTimer > 0.0f) {
advTimer -= Core::deltaTime; advTimer = max(0.0f, advTimer - Core::deltaTime);
if (advTimer <= 0.0f)
advTimer = 0.0f;
} }
} else } else
advTimer = -1.0f; advTimer = -1.0f;
@@ -182,6 +181,12 @@ struct Camera : Controller {
if (owner->velocity != 0.0f && advTimer < 0.0f && !Input::down[ikMouseL]) if (owner->velocity != 0.0f && advTimer < 0.0f && !Input::down[ikMouseL])
advTimer = -advTimer; 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 = owner->angle + advAngle;
angle.z = 0.0f; angle.z = 0.0f;