From d09a1be33a647aedc12ce5ddcb7ea4ee23a75c8c Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Wed, 30 Jul 2008 16:00:49 +0000 Subject: various minor issues: ESC closing chat, g_autolevel --- src/client/input.cc | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) (limited to 'src/client/input.cc') 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) -- cgit v1.2.3