diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-03-01 20:03:04 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-03-01 20:03:04 +0000 |
| commit | 08c4c8e0b71b577835eb9476ffc17626c94266ec (patch) | |
| tree | 97c6386956b483248e564ccd2b6538d233d5e721 /src/engine/client | |
| parent | 0747c2dff9289db6204b82501d03447f3ec6cc99 (diff) | |
| download | zcatch-08c4c8e0b71b577835eb9476ffc17626c94266ec.tar.gz zcatch-08c4c8e0b71b577835eb9476ffc17626c94266ec.zip | |
redone the input system so you can know do keybindings with say etc
Diffstat (limited to 'src/engine/client')
| -rw-r--r-- | src/engine/client/ec_client.c | 32 | ||||
| -rw-r--r-- | src/engine/client/ec_inp.c | 20 |
2 files changed, 25 insertions, 27 deletions
diff --git a/src/engine/client/ec_client.c b/src/engine/client/ec_client.c index 56c817a6..17ea72b5 100644 --- a/src/engine/client/ec_client.c +++ b/src/engine/client/ec_client.c @@ -1306,26 +1306,6 @@ static void client_run() } } - /* screenshot button */ - if(inp_key_down(config.key_screenshot)) - gfx_screenshot(); - - /* some debug keys */ - /* - if(config.debug) - { - if(inp_key_pressed(KEY_F1)) - inp_mouse_mode_absolute(); - if(inp_key_pressed(KEY_F2)) - inp_mouse_mode_relative(); - - if(inp_key_pressed(KEY_F5)) - { - ack_game_tick = -1; - client_send_input(); - } - }*/ - /* panic quit button */ if(inp_key_pressed(KEY_LCTRL) && inp_key_pressed(KEY_LSHIFT) && inp_key_pressed('Q')) break; @@ -1455,12 +1435,23 @@ static void con_ping(void *result, void *user_data) ping_start_time = time_get(); } +static void con_screenshot(void *result, void *user_data) +{ + gfx_screenshot(); +} + static void client_register_commands() { MACRO_REGISTER_COMMAND("quit", "", con_quit, 0x0); MACRO_REGISTER_COMMAND("connect", "s", con_connect, 0x0); MACRO_REGISTER_COMMAND("disconnect", "", con_disconnect, 0x0); MACRO_REGISTER_COMMAND("ping", "", con_ping, 0x0); + MACRO_REGISTER_COMMAND("screenshot", "", con_screenshot, 0x0); +} + +void client_save_line(const char *line) +{ + engine_config_write_line(line); } int editor_main(int argc, char **argv); @@ -1485,6 +1476,7 @@ int main(int argc, char **argv) if(engine_config_write_start() == 0) { config_save(); + modc_save_config(); engine_config_write_stop(); } diff --git a/src/engine/client/ec_inp.c b/src/engine/client/ec_inp.c index 3e0bfef7..88942959 100644 --- a/src/engine/client/ec_inp.c +++ b/src/engine/client/ec_inp.c @@ -56,12 +56,13 @@ enum static INPUT_EVENT input_events[INPUT_BUFFER_SIZE]; static int num_events = 0; -static void add_event(char c, int key) +static void add_event(char c, int key, int flags) { if(num_events != INPUT_BUFFER_SIZE) { input_events[num_events].ch = c; input_events[num_events].key = key; + input_events[num_events].flags = flags; num_events++; } } @@ -87,17 +88,18 @@ INPUT_EVENT inp_get_event(int index) return input_events[index]; } - static void char_callback(int character, int action) { if(action == GLFW_PRESS && character < 256) - add_event((char)character, 0); + add_event((char)character, 0, 0); } static void key_callback(int key, int action) { if(action == GLFW_PRESS) - add_event(0, key); + add_event(0, key, INPFLAG_PRESS); + else + add_event(0, key, INPFLAG_RELEASE); if(action == GLFW_PRESS) input_count[input_current^1][key].presses++; @@ -109,7 +111,9 @@ static void key_callback(int key, int action) static void mousebutton_callback(int button, int action) { if(action == GLFW_PRESS) - add_event(0, KEY_MOUSE_FIRST+button); + add_event(0, KEY_MOUSE_FIRST+button, INPFLAG_PRESS); + else + add_event(0, KEY_MOUSE_FIRST+button, INPFLAG_RELEASE); if(action == GLFW_PRESS) input_count[input_current^1][KEY_MOUSE_FIRST+button].presses++; @@ -136,7 +140,8 @@ static void mousewheel_callback(int pos) input_count[input_current^1][KEY_MOUSE_WHEEL_UP].releases++; } - add_event(0, KEY_MOUSE_WHEEL_UP); + add_event(0, KEY_MOUSE_WHEEL_UP, INPFLAG_PRESS); + add_event(0, KEY_MOUSE_WHEEL_UP, INPFLAG_RELEASE); } else if(pos < 0) { @@ -146,7 +151,8 @@ static void mousewheel_callback(int pos) input_count[input_current^1][KEY_MOUSE_WHEEL_DOWN].releases++; } - add_event(0, KEY_MOUSE_WHEEL_DOWN); + add_event(0, KEY_MOUSE_WHEEL_DOWN, INPFLAG_PRESS); + add_event(0, KEY_MOUSE_WHEEL_DOWN, INPFLAG_RELEASE); } glfwSetMouseWheel(0); } |