From: Christian Heller Date: Wed, 28 Aug 2013 01:23:39 +0000 (+0200) Subject: Moved meta_keys() into new library "control" to soon include all key-press processing. X-Git-Tag: tce~1016 X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/decks/%7B%7Bdeck_id%7D%7D/template?a=commitdiff_plain;h=fcf58a650b9c0a9c3aa08c2c25ea14d70e08f8c7;p=plomrogue Moved meta_keys() into new library "control" to soon include all key-press processing. --- diff --git a/src/control.c b/src/control.c new file mode 100644 index 0000000..e10a93c --- /dev/null +++ b/src/control.c @@ -0,0 +1,128 @@ +/* control.c */ + +#include "control.h" +#include /* for uint8_t */ +#include "windows.h" /* for cycle_active_win(), shift_active_win(), struct Win, + * struct WinMeta + */ +#include "keybindings.h" /* for get_action_key(), save_keybindings(), + * keyswin_move_selection(), keyswin_mod_key() + */ +#include "map.h" /* for map_scroll(), map_center_player(), dir enum */ +#include "main.h" /* for World struct */ +#include "rexit.h" /* for exit_err() */ +#include "misc.h" /* for scroll_pad(), toggle_window(), + * growshrink_active_window() + */ + + + +extern uint8_t meta_keys(int key, struct World * world) +{ + struct WinMeta * win_meta = world->wins.meta; + struct Win * win_keys = world->wins.keys; + struct Win * win_map = world->wins.map; + struct Win * win_info = world->wins.info; + struct Win * win_log = world->wins.log; + char * err_toggle = "Trouble with toggle_window() in meta_keys()."; + char * err_shift = "Trouble with shift_active_win() in meta_keys()."; + char * err_resize = "Trouble with growshrink_active_window() in " + "meta_keys()."; + if (key == get_action_key(world->keybindings, "quit")) + { + return 1; + } + else if (key == get_action_key(world->keybindings, "scroll pad right")) + { + scroll_pad(win_meta, '+'); + } + else if (key == get_action_key(world->keybindings, "scroll pad left")) + { + scroll_pad(win_meta, '-'); + } + else if (key == get_action_key(world->keybindings, "toggle keys window")) + { + exit_err(toggle_window(win_meta, win_keys), world, err_toggle); + } + else if (key == get_action_key(world->keybindings, "toggle map window")) + { + exit_err(toggle_window(win_meta, win_map), world, err_toggle); + } + else if (key == get_action_key(world->keybindings, "toggle info window")) + { + exit_err(toggle_window(win_meta, win_info), world, err_toggle); + } + else if (key == get_action_key(world->keybindings, "toggle log window")) + { + exit_err(toggle_window(win_meta, win_log), world, err_toggle); + } + else if (key == get_action_key(world->keybindings, "cycle forwards")) + { + cycle_active_win(win_meta, 'f'); + } + else if (key == get_action_key(world->keybindings, "cycle backwards")) + { + cycle_active_win(win_meta, 'b'); + } + else if (key == get_action_key(world->keybindings, "shift forwards")) + { + exit_err(shift_active_win(win_meta, 'f'), world, err_shift); + } + else if (key == get_action_key(world->keybindings, "shift backwards")) + { + exit_err(shift_active_win(win_meta, 'b'), world, err_shift); + } + else if (key == get_action_key(world->keybindings, "grow horizontally")) + { + exit_err(growshrink_active_window(win_meta, '*'), world, err_resize); + } + else if (key == get_action_key(world->keybindings, "shrink horizontally")) + { + exit_err(growshrink_active_window(win_meta, '_'), world, err_resize); + } + else if (key == get_action_key(world->keybindings, "grow vertically")) + { + exit_err(growshrink_active_window(win_meta, '+'), world, err_resize); + } + else if (key == get_action_key(world->keybindings, "shrink vertically")) + { + exit_err(growshrink_active_window(win_meta, '-'), world, err_resize); + } + else if (key == get_action_key(world->keybindings, "save keys")) + { + save_keybindings(world); + } + else if (key == get_action_key(world->keybindings, "keys nav up")) + { + keyswin_move_selection (world, 'u'); + } + else if (key == get_action_key(world->keybindings, "keys nav down")) + { + keyswin_move_selection (world, 'd'); + } + else if (key == get_action_key(world->keybindings, "keys mod")) + { + keyswin_mod_key (world, win_meta); + } + else if (key == get_action_key(world->keybindings, "map up")) + { + map_scroll(world->map, NORTH, win_map->frame.size); + } + else if (key == get_action_key(world->keybindings, "map down")) + { + map_scroll(world->map, SOUTH, win_map->frame.size); + } + else if (key == get_action_key(world->keybindings, "map right")) + { + map_scroll(world->map, EAST, win_map->frame.size); + } + else if (key == get_action_key(world->keybindings, "map left")) + { + map_scroll(world->map, WEST, win_map->frame.size); + } + else if (key == get_action_key(world->keybindings, "map center player")) + { + map_center_player (world->map, world->player, win_map->frame.size); + } + return 0; +} diff --git a/src/control.h b/src/control.h new file mode 100644 index 0000000..599f04b --- /dev/null +++ b/src/control.h @@ -0,0 +1,22 @@ +/* control.h + */ + +#ifndef CONTROL_H +#define CONTROL_H + + + +#include /* for uint8_t */ +#include "yx_uint16.h" /* for yx_uint16 coordinates */ +struct World; + + + +/* Call some meta game / window management actions dependent on key. If the + * "quit" action is called, return 1 only instead of doing anything directly. + */ +extern uint8_t meta_keys(int key, struct World * world); + + + +#endif diff --git a/src/main.c b/src/main.c index 8f13e08..c92d604 100644 --- a/src/main.c +++ b/src/main.c @@ -28,6 +28,8 @@ #include "yx_uint16.h" /* for dir enum */ #include "rrand.h" /* for rrand(), rrand_seed() */ #include "rexit.h" /* for exit_game() */ +#include "control.h" /* for meta_keys() */ + int main(int argc, char *argv[]) { diff --git a/src/misc.c b/src/misc.c index a4781c9..1fbcc3e 100644 --- a/src/misc.c +++ b/src/misc.c @@ -261,115 +261,3 @@ extern struct yx_uint16 find_passable_pos(struct Map * map) } return pos; } - - - -extern uint8_t meta_keys(int key, struct World * world) -{ - struct WinMeta * win_meta = world->wins.meta; - struct Win * win_keys = world->wins.keys; - struct Win * win_map = world->wins.map; - struct Win * win_info = world->wins.info; - struct Win * win_log = world->wins.log; - char * err_toggle = "Trouble with toggle_window() in meta_keys()."; - char * err_shift = "Trouble with shift_active_win() in meta_keys()."; - char * err_resize = "Trouble with growshrink_active_window() in " - "meta_keys()."; - if (key == get_action_key(world->keybindings, "quit")) - { - return 1; - } - else if (key == get_action_key(world->keybindings, "scroll pad right")) - { - scroll_pad (win_meta, '+'); - } - else if (key == get_action_key(world->keybindings, "scroll pad left")) - { - scroll_pad (win_meta, '-'); - } - else if (key == get_action_key(world->keybindings, "toggle keys window")) - { - exit_err(toggle_window(win_meta, win_keys), world, err_toggle); - } - else if (key == get_action_key(world->keybindings, "toggle map window")) - { - exit_err(toggle_window(win_meta, win_map), world, err_toggle); - } - else if (key == get_action_key(world->keybindings, "toggle info window")) - { - exit_err(toggle_window(win_meta, win_info), world, err_toggle); - } - else if (key == get_action_key(world->keybindings, "toggle log window")) - { - exit_err(toggle_window(win_meta, win_log), world, err_toggle); - } - else if (key == get_action_key(world->keybindings, "cycle forwards")) - { - cycle_active_win(win_meta, 'f'); - } - else if (key == get_action_key(world->keybindings, "cycle backwards")) - { - cycle_active_win(win_meta, 'b'); - } - else if (key == get_action_key(world->keybindings, "shift forwards")) - { - exit_err(shift_active_win(win_meta, 'f'), world, err_shift); - } - else if (key == get_action_key(world->keybindings, "shift backwards")) - { - exit_err(shift_active_win(win_meta, 'b'), world, err_shift); - } - else if (key == get_action_key(world->keybindings, "grow horizontally")) - { - exit_err(growshrink_active_window(win_meta, '*'), world, err_resize); - } - else if (key == get_action_key(world->keybindings, "shrink horizontally")) - { - exit_err(growshrink_active_window(win_meta, '_'), world, err_resize); - } - else if (key == get_action_key(world->keybindings, "grow vertically")) - { - exit_err(growshrink_active_window(win_meta, '+'), world, err_resize); - } - else if (key == get_action_key(world->keybindings, "shrink vertically")) - { - exit_err(growshrink_active_window(win_meta, '-'), world, err_resize); - } - else if (key == get_action_key(world->keybindings, "save keys")) - { - save_keybindings(world); - } - else if (key == get_action_key(world->keybindings, "keys nav up")) - { - keyswin_move_selection (world, 'u'); - } - else if (key == get_action_key(world->keybindings, "keys nav down")) - { - keyswin_move_selection (world, 'd'); - } - else if (key == get_action_key(world->keybindings, "keys mod")) - { - keyswin_mod_key (world, win_meta); - } - else if (key == get_action_key(world->keybindings, "map up")) - { - map_scroll (world->map, NORTH, win_map->frame.size); - } - else if (key == get_action_key(world->keybindings, "map down")) - { - map_scroll (world->map, SOUTH, win_map->frame.size); - } - else if (key == get_action_key(world->keybindings, "map right")) - { - map_scroll (world->map, EAST, win_map->frame.size); - } - else if (key == get_action_key(world->keybindings, "map left")) - { - map_scroll (world->map, WEST, win_map->frame.size); - } - else if (key == get_action_key(world->keybindings, "map center player")) - { - map_center_player (world->map, world->player, win_map->frame.size); - } - return 0; -} diff --git a/src/misc.h b/src/misc.h index 417ca8e..eb2d0cd 100644 --- a/src/misc.h +++ b/src/misc.h @@ -87,11 +87,4 @@ extern struct yx_uint16 find_passable_pos(struct Map * map); -/* Call some meta game / window management actions dependent on key. If the - * "quit" action is called, return 1 only instead of doing anything directly. - */ -extern uint8_t meta_keys(int key, struct World * world); - - - #endif