X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fcontrol.c;h=c59053923a7d9cf1c60d6e558d8a439cb0f5e468;hb=657d5dbc6d362d7b20693c63b38d8d99f3d2dbbd;hp=a4479cefbf10c7a797f901c5f7296783432de9e7;hpb=550d22ec0c3f530f5d317746f3f7e75251a1de4b;p=plomrogue diff --git a/src/control.c b/src/control.c index a4479ce..c590539 100644 --- a/src/control.c +++ b/src/control.c @@ -5,19 +5,25 @@ #include "windows.h" /* for cycle_active_win(), shift_active_win(), struct Win, * struct WinMeta */ -#include "keybindings.h" /* for get_keycode_to_action(), save_keybindings(), - * move_keyb_mod_selection(), mod_selected_keyb() +#include "keybindings.h" /* for get_keycode_to_action(), mod_selected_keyb(), + * move_keyb_mod_selection() */ -#include "map.h" /* for map_scroll(), map_center_player(), dir enum */ +#include "map.h" /* for map_scroll(), map_center_object() */ #include "main.h" /* for World struct */ #include "rexit.h" /* for exit_err() */ #include "wincontrol.h" /* for scroll_pad(), toggle_window(), - * growshrink_active_window(), reload_win_config() - * toggle_winconfig(), save_win_configs(), + * growshrink_active_window(), toggle_winconfig(), * toggle_win_height_type(), toggle_win_width_type() */ -#include "map_object_actions.h" /* for player_wait(), move_player() */ +#include "map_object_actions.h" /* for player_wait(), move_player(), + * player_drop(), player_pick() + */ #include "command_db.h" /* for is_command_id_shortdsc() */ +#include "misc.h" /* for load_interface_conf(), unload_interface_conf(), + * save_interface_conf(), nav_inventory() + */ +#include "yx_uint16.h" /* for dir enum */ +#include "map_objects.h" /* for get_player() */ @@ -69,13 +75,25 @@ extern void record_control(int action, struct World * world) { move_player(world, WEST); } + else if (is_command_id_shortdsc(world, action, "drop")) + { + player_drop(world); + } + else if (is_command_id_shortdsc(world, action, "pick")) + { + player_pick(world); + } } extern uint8_t player_control(int key, struct World * world) { - if (key == get_available_keycode_to_action(world, "player_u")) + if (key == get_available_keycode_to_action(world, "wait")) + { + player_wait(world); + } + else if (key == get_available_keycode_to_action(world, "player_u")) { move_player(world, NORTH); } @@ -91,9 +109,13 @@ extern uint8_t player_control(int key, struct World * world) { move_player(world, WEST); } - else if (key == get_available_keycode_to_action(world, "wait")) + else if (key == get_available_keycode_to_action(world, "drop")) { - player_wait(world); + player_drop(world); + } + else if (key == get_available_keycode_to_action(world, "pick")) + { + player_pick(world); } else { @@ -177,10 +199,7 @@ extern uint8_t winkeyb_control(int key, struct World * world) extern uint8_t meta_control(int key, struct World * world) { struct WinMeta * win_meta = world->wmeta; - struct Win * win_keys = get_win_by_id(world, '0'); /* Bad hardcoding. */ - struct Win * win_map = get_win_by_id(world, 'm'); /* TODO: Replace. */ - struct Win * win_info = get_win_by_id(world, 'i'); /* */ - struct Win * win_log = get_win_by_id(world, 'l'); /* */ + struct Win * win_map = get_win_by_id(world, 'm'); char * err_toggle = "Trouble with toggle_window() in meta_control()."; if (key == get_available_keycode_to_action(world, "quit")) { @@ -206,9 +225,15 @@ extern uint8_t meta_control(int key, struct World * world) { scroll_pad(win_meta, '-'); } + else if (key == get_available_keycode_to_action(world, "to_a_keywin")) + { + uint8_t test = toggle_window(win_meta, get_win_by_id(world, 'k')); + exit_err(test, world, err_toggle); + } else if (key == get_available_keycode_to_action(world, "to_g_keywin")) { - exit_err(toggle_window(win_meta, win_keys), world, err_toggle); + uint8_t test = toggle_window(win_meta, get_win_by_id(world, '0')); + exit_err(test, world, err_toggle); } else if (key == get_available_keycode_to_action(world, "to_wg_keywin")) { @@ -226,20 +251,22 @@ extern uint8_t meta_control(int key, struct World * world) } else if (key == get_available_keycode_to_action(world, "to_infowin")) { - exit_err(toggle_window(win_meta, win_info), world, err_toggle); + uint8_t test = toggle_window(win_meta, get_win_by_id(world, 'i')); + exit_err(test, world, err_toggle); + } + else if (key == get_available_keycode_to_action(world, "to_inv")) + { + uint8_t test = toggle_window(win_meta, get_win_by_id(world, 'c')); + exit_err(test, world, err_toggle); } else if (key == get_available_keycode_to_action(world, "to_logwin")) { - exit_err(toggle_window(win_meta, win_log), world, err_toggle); + uint8_t test = toggle_window(win_meta, get_win_by_id(world, 'l')); + exit_err(test, world, err_toggle); } - else if (key == get_available_keycode_to_action(world, "save_keys")) + else if (key == get_available_keycode_to_action(world, "save_conf")) { - save_keybindings(world, "config/keybindings_global", - &world->kb_global); - save_keybindings(world, "config/keybindings_wingeom", - &world->kb_wingeom); - save_keybindings(world, "config/keybindings_winkeys", - &world->kb_winkeys); + save_interface_conf(world); } else if (key == get_available_keycode_to_action(world, "g_keys_u")) { @@ -295,19 +322,24 @@ extern uint8_t meta_control(int key, struct World * world) } else if (key == get_available_keycode_to_action(world, "map_c")) { - map_center_player(world->map, world->player, win_map->frame.size); + map_center_object(world->map, get_player(world), win_map->frame.size); } - else if (key == get_available_keycode_to_action(world, "reload_wins")) + else if (key == get_available_keycode_to_action(world, "inv_u")) { - reload_win_config(world); + nav_inventory(world, 'u'); } - else if (key == get_available_keycode_to_action(world, "winconf")) + else if (key == get_available_keycode_to_action(world, "inv_d")) { - toggle_winconfig(world, world->wmeta->active); + nav_inventory(world, 'd'); + } + else if (key == get_available_keycode_to_action(world, "reload_conf")) + { + unload_interface_conf(world); + load_interface_conf(world); } - else if (key == get_available_keycode_to_action(world, "save_winconf")) + else if (key == get_available_keycode_to_action(world, "winconf")) { - save_win_configs(world); + toggle_winconfig(world, world->wmeta->active); } return 0; }