diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-12-09 14:15:57 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-12-09 14:15:57 +0000 |
| commit | 8aa0456a2982e0992967e47731034f328c600cba (patch) | |
| tree | b011ddb368de8906a1afe4105f524de68182274b /src | |
| parent | 808959328acbed8467fb8feb25341bb924dfd529 (diff) | |
| download | zcatch-8aa0456a2982e0992967e47731034f328c600cba.tar.gz zcatch-8aa0456a2982e0992967e47731034f328c600cba.zip | |
added mouse sens option
Diffstat (limited to 'src')
| -rw-r--r-- | src/engine/client/inp.c | 19 | ||||
| -rw-r--r-- | src/engine/config_variables.h | 1 | ||||
| -rw-r--r-- | src/game/client/menu2.cpp | 11 |
3 files changed, 28 insertions, 3 deletions
diff --git a/src/engine/client/inp.c b/src/engine/client/inp.c index 79d39f08..ce973246 100644 --- a/src/engine/client/inp.c +++ b/src/engine/client/inp.c @@ -4,6 +4,7 @@ #include <engine/system.h> #include <engine/interface.h> +#include <engine/config.h> static int keyboard_state[2][1024]; /* TODO: fix this!! */ static int keyboard_current = 0; @@ -18,15 +19,27 @@ static struct static unsigned char input_state[2][1024] = {{0}, {0}}; -/*static unsigned char input_state[2][1024] = {{0},{0}};*/ -/*static unsigned char input_state[1024] = {{0},{0}};*/ static int input_current = 0; void inp_mouse_relative(int *x, int *y) { static int last_x = 0, last_y = 0; + static int last_sens = 100.0f; int nx, ny; + float sens = config.inp_mousesens/100.0f; + + if(last_sens != config.inp_mousesens) + { + last_x = (last_x/(float)last_sens)*(float)config.inp_mousesens; + last_y = (last_y/(float)last_sens)*(float)config.inp_mousesens; + last_sens = config.inp_mousesens; + } + + glfwGetMousePos(&nx, &ny); + nx *= sens; + ny *= sens; + *x = nx-last_x; *y = ny-last_y; last_x = nx; @@ -39,7 +52,7 @@ static int last_k = 0; static void char_callback(int character, int action) { if(action == GLFW_PRESS && character < 256) - last_c = (char)character; + last_c = (char)character; } static void key_callback(int key, int action) diff --git a/src/engine/config_variables.h b/src/engine/config_variables.h index d6225bf1..e67e87c9 100644 --- a/src/engine/config_variables.h +++ b/src/engine/config_variables.h @@ -41,6 +41,7 @@ MACRO_CONFIG_INT(gfx_fsaa_samples, 0, 0, 16) MACRO_CONFIG_INT(gfx_refresh_rate, 0, 0, 0) MACRO_CONFIG_INT(key_screenshot, 267, 32, 512) +MACRO_CONFIG_INT(inp_mousesens, 100, 5, 100000) MACRO_CONFIG_STR(masterserver, 128, "master.teewars.com") diff --git a/src/game/client/menu2.cpp b/src/game/client/menu2.cpp index c9019b93..0b19ccfc 100644 --- a/src/game/client/menu2.cpp +++ b/src/game/client/menu2.cpp @@ -1190,6 +1190,17 @@ static void menu2_render_settings_controls(RECT main_view) { ui2_vsplit_l(&main_view, 300.0f, &main_view, 0); + { + RECT button, label; + ui2_hsplit_t(&main_view, 20.0f, &button, &main_view); + ui2_vsplit_l(&button, 110.0f, &label, &button); + ui2_do_label(&label, "Mouse sens.", 18.0f, -1); + config.inp_mousesens = (int)(ui2_do_scrollbar_h(&config.inp_mousesens, &button, config.inp_mousesens/500.0f)*500.0f); + //*key.key = ui2_do_key_reader(key.key, &button, *key.key); + ui2_hsplit_t(&main_view, 20.0f, 0, &main_view); + } + + typedef struct { char name[32]; |