Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2007-10-27 13:18:04 +0000
committerStijn Buys <ingar@osirion.org>2007-10-27 13:18:04 +0000
commitaa50057b86c35de70ed87921ecdb1288e7e17e41 (patch)
tree20e20f38e230464b6dbd4d5aae6677a33a91a8e0 /src/client/camera.cc
parentbabef2ec1d88b6057b0e17bf1c04dfa3c9d0d5a0 (diff)
camera handling updates
Diffstat (limited to 'src/client/camera.cc')
-rw-r--r--src/client/camera.cc30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/client/camera.cc b/src/client/camera.cc
index 6a6da0c..bc8ee3e 100644
--- a/src/client/camera.cc
+++ b/src/client/camera.cc
@@ -20,10 +20,10 @@ Camera::Camera()
pitch_track = -15.0f;
offset_inc = 5.0f;
- yaw = 0;
+ yaw_current = 0;
yaw_target = 0;
- pitch = pitch_track * 2;
+ pitch_current = pitch_track * 2;
pitch_target = pitch_track;
distance = 0.4f;
@@ -42,23 +42,23 @@ void Camera::draw(float elapsed)
}
// adjust yaw
- float d = degreesf(yaw - yaw_target);
- yaw = degreesf( yaw - d * elapsed) ;
+ float d = degreesf(yaw_current - yaw_target);
+ yaw_current = degreesf( yaw_current - d * elapsed) ;
// adjust pitch target
- d = degreesf(pitch - pitch_target);
- pitch = degreesf( pitch - d *elapsed);
+ d = degreesf(pitch_current - pitch_target);
+ pitch_current = degreesf( pitch_current - d *elapsed);
switch (mode) {
case Free:
- gl::translate(1.0f+distance, -distance, 0.0f);
- gl::rotate(-pitch, 0, 0, 1.0f);
- gl::rotate(-yaw, 0, 1.0f, 0);
+ gl::translate(1.0f+distance, -distance/2, 0.0f);
+ gl::rotate(-pitch_current, 0, 0, 1.0f);
+ gl::rotate(-yaw_current, 0, 1.0f, 0);
break;
case Track:
gl::translate(1.0f+distance, -distance , 0.0f);
- gl::rotate(-pitch, 0, 0, 1.0f);
- gl::rotate(-yaw, 0, 1.0f, 0);
+ gl::rotate(-pitch_current, 0, 0, 1.0f);
+ gl::rotate(-yaw_current, 0, 1.0f, 0);
break;
default:
break;
@@ -101,17 +101,17 @@ void Camera::nextmode() {
// switch camera to Track mode
mode = Track;
yaw_target = game::ship.yaw;
- yaw = yaw_target;
+ yaw_current = yaw_target;
pitch_target = pitch_track;
- pitch = pitch_target;
+ pitch_current = pitch_target;
break;
case Track:
// switch camera to Free mode
mode = Free;
yaw_target = game::ship.yaw;
- yaw = yaw_target;
+ yaw_current = yaw_target;
pitch_target = pitch_track;
- pitch = pitch_target;
+ pitch_current = pitch_target;
break;
default:
break;