diff options
Diffstat (limited to 'src/client/camera.cc')
-rw-r--r-- | src/client/camera.cc | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/client/camera.cc b/src/client/camera.cc index bc8ee3e..03eff83 100644 --- a/src/client/camera.cc +++ b/src/client/camera.cc @@ -10,7 +10,8 @@ #include "game/game.h" #include "common/functions.h" -using namespace common; +using common::degrees360f; +using common::degrees180f; namespace client { @@ -38,16 +39,16 @@ Camera::~Camera() void Camera::draw(float elapsed) { if (mode == Track) { - yaw_target = game::ship.yaw; + yaw_target = game::ship.yaw(); } // adjust yaw - float d = degreesf(yaw_current - yaw_target); - yaw_current = degreesf( yaw_current - d * elapsed) ; + float d = degrees180f(yaw_current - yaw_target); + yaw_current = degrees360f( yaw_current - d * elapsed) ; // adjust pitch target - d = degreesf(pitch_current - pitch_target); - pitch_current = degreesf( pitch_current - d *elapsed); + d = degrees180f(pitch_current - pitch_target); + pitch_current = degrees360f( pitch_current - d *elapsed); switch (mode) { case Free: @@ -68,14 +69,14 @@ void Camera::draw(float elapsed) void Camera::rotate_right() { if (mode == Free ) { - yaw_target = degreesf( yaw_target + offset_inc); + yaw_target = degrees360f( yaw_target + offset_inc); } } void Camera::rotate_left() { if (mode == Free ) { - yaw_target = degreesf( yaw_target - offset_inc); + yaw_target = degrees360f( yaw_target - offset_inc); } } @@ -100,7 +101,7 @@ void Camera::nextmode() { case Free: // switch camera to Track mode mode = Track; - yaw_target = game::ship.yaw; + yaw_target = game::ship.yaw(); yaw_current = yaw_target; pitch_target = pitch_track; pitch_current = pitch_target; @@ -108,7 +109,7 @@ void Camera::nextmode() { case Track: // switch camera to Free mode mode = Free; - yaw_target = game::ship.yaw; + yaw_target = game::ship.yaw(); yaw_current = yaw_target; pitch_target = pitch_track; pitch_current = pitch_target; |