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>2008-11-09 11:43:28 +0000
committerStijn Buys <ingar@osirion.org>2008-11-09 11:43:28 +0000
commit9d39702824e8fae5127e09fb5a05b521b48cd028 (patch)
treea56fdfc6e85a2405461be22bc80e43b33c8b8b48 /src/render/camera.cc
parent6cd1a38f1d3a0a45846d63a75475400372af1277 (diff)
docking menus
Diffstat (limited to 'src/render/camera.cc')
-rw-r--r--src/render/camera.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/render/camera.cc b/src/render/camera.cc
index 04d899f..4544b75 100644
--- a/src/render/camera.cc
+++ b/src/render/camera.cc
@@ -32,6 +32,7 @@ math::Vector3f Camera::camera_eye;
math::Vector3f Camera::camera_target;
math::Axis Camera::camera_axis;
Camera::Mode Camera::camera_mode;
+Camera::Mode Camera::camera_previous_mode;
// current and target yaw angle in XZ plane, positive is looking left
float Camera::direction_current;
@@ -65,6 +66,8 @@ void Camera::init()
distance = 0.4f;
+ camera_mode = Overview;
+ camera_previous_mode = Track;
set_mode(Track);
camera_axis.clear();
@@ -100,6 +103,9 @@ void Camera::set_mode(Mode newmode) {
camera_axis.clear();
+ if (camera_mode != Overview)
+ camera_previous_mode = camera_mode;
+
switch(newmode) {
case Track:
// switch camera to Track mode
@@ -213,7 +219,7 @@ void Camera::frame(float seconds)
}
} else if (core::localcontrol()) {
if (camera_mode == Overview) {
- set_mode(Track);
+ set_mode(camera_previous_mode);
}
} else {
if (camera_mode != Overview) {
@@ -230,13 +236,14 @@ void Camera::frame(float seconds)
camera_axis.assign(core::localplayer()->view()->axis());
camera_axis.change_direction(180.0f);
distance = math::max(core::localplayer()->view()->radius(), 1.0f) * 2.0f;
-
+/*
} else if (core::localplayer()->zone()->default_view()) {
// default zone view entity
camera_target.assign(core::localplayer()->zone()->default_view()->location());
camera_axis.assign(core::localplayer()->zone()->default_view()->axis());
camera_axis.change_direction(180.0f);
distance = math::max(core::localplayer()->zone()->default_view()->radius(), 1.0f) * 2.0f;
+*/
} else {
// default location (0,0,0)
camera_target.clear();