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/client/input.cc
parentad436de3a520fb2469dafe23afe03dd0afe8d189 (diff)
various minor issues: ESC closing chat, g_autolevel
Diffstat (limited to 'src/client/input.cc')
-rw-r--r--src/client/input.cc43
1 files changed, 36 insertions, 7 deletions
diff --git a/src/client/input.cc b/src/client/input.cc
index 044ebc2..2f09d5b 100644
--- a/src/client/input.cc
+++ b/src/client/input.cc
@@ -104,10 +104,21 @@ void func_ui_chat(std::string const &args)
}
}
-void func_ui_view(std::string const &args)
+void func_view_next(std::string const &args)
{
if (core::application()->connected() && core::localcontrol()) {
- render::Camera::next_mode();
+ render::Camera::view_next();
+ local_roll = 0;
+ local_pitch = 0;
+ local_direction = 0;
+ audio::play("ui/view");
+ }
+}
+
+void func_view_prev(std::string const &args)
+{
+ if (core::application()->connected() && core::localcontrol()) {
+ render::Camera::view_previous();
local_roll = 0;
local_pitch = 0;
local_direction = 0;
@@ -227,9 +238,6 @@ void init()
func = core::Func::add("ui_chat", func_ui_chat);
func->set_info("toggle chatbox on or of");
- func = core::Func::add("ui_view", func_ui_view);
- func->set_info("switch camera view");
-
func = core::Func::add("ui_control",func_ui_control);
func->set_info("toggle mouse control");
@@ -251,6 +259,12 @@ void init()
func = core::Func::add("unbindall", func_unbind);
func->set_info("unbind all keys");
+ func = core::Func::add("view_next", func_view_next);
+ func->set_info("switch to next view");
+
+ func = core::Func::add("view_prev", func_view_prev);
+ func->set_info("switch to previous view");
+
func = core::Func::add("screenshot", func_screenshot);
func->set_info("make a screenshot");
@@ -406,8 +420,21 @@ Key::Modifier convert_SDL_modifier(int const sdlmodifier)
void key_pressed(Key *key)
{
- if ((key->sym() == SDLK_ESCAPE) || (key->bind(Key::None).compare("ui_console") == 0)) {
- console()->toggle();
+ if (key->sym() == SDLK_ESCAPE) {
+ if (chat::visible()) {
+ chat::toggle();
+ } else {
+ local_direction = 0.0f;
+ local_pitch = 0.0f;
+ local_roll = 0.0f;
+
+ render::Camera::set_direction(0.0f);
+ render::Camera::set_pitch(0.0f);
+
+ console()->toggle();
+ }
+
+ } else if (key->bind(Key::None).compare("ui_console") == 0) {
local_direction = 0.0f;
local_pitch = 0.0f;
local_roll = 0.0f;
@@ -415,6 +442,8 @@ void key_pressed(Key *key)
render::Camera::set_direction(0.0f);
render::Camera::set_pitch(0.0f);
+ console()->toggle();
+
} else if (console()->visible()) {
// send key events to the console
if (key->sym() < 512)