diff options
author | Stijn Buys <ingar@osirion.org> | 2008-07-30 16:00:49 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-07-30 16:00:49 +0000 |
commit | d09a1be33a647aedc12ce5ddcb7ea4ee23a75c8c (patch) | |
tree | 8fe9d8778223e22e8c957b59c51bccabb98d2b94 /src/render/camera.cc | |
parent | ad436de3a520fb2469dafe23afe03dd0afe8d189 (diff) |
various minor issues: ESC closing chat, g_autolevel
Diffstat (limited to 'src/render/camera.cc')
-rw-r--r-- | src/render/camera.cc | 33 |
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; |