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-07-30 16:00:49 +0000
committerStijn Buys <ingar@osirion.org>2008-07-30 16:00:49 +0000
commitd09a1be33a647aedc12ce5ddcb7ea4ee23a75c8c (patch)
tree8fe9d8778223e22e8c957b59c51bccabb98d2b94 /src/render/camera.cc
parentad436de3a520fb2469dafe23afe03dd0afe8d189 (diff)
various minor issues: ESC closing chat, g_autolevel
Diffstat (limited to 'src/render/camera.cc')
-rw-r--r--src/render/camera.cc33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/render/camera.cc b/src/render/camera.cc
index 74eb674..283f40f 100644
--- a/src/render/camera.cc
+++ b/src/render/camera.cc
@@ -126,7 +126,7 @@ void Camera::set_mode(Mode newmode) {
}
-void Camera::next_mode()
+void Camera::view_next()
{
if (!core::localcontrol()) {
@@ -158,6 +158,37 @@ void Camera::next_mode()
}
}
+void Camera::view_previous()
+{
+
+ if (!core::localcontrol()) {
+ set_mode(Overview);
+ return;
+ }
+
+ switch(camera_mode) {
+ case Cockpit:
+ // switch camera to Track mode
+ set_mode(Track);
+ core::application()->notify_message(std::string("view: track"));
+ break;
+
+ case Free:
+ // switch camera to Cockpit mode
+ set_mode(Cockpit);
+ core::application()->notify_message(std::string("view: cockpit"));
+ break;
+
+ case Track:
+ // switch camera to Free mode
+ set_mode(Free);
+ core::application()->notify_message(std::string("view: free"));
+ break;
+
+ default:
+ break;
+ }
+}
void Camera::frame(float seconds)
{
math::Axis target_axis;