X-Git-Url: https://plomlompom.com/repos/index.html?a=blobdiff_plain;f=roguelike.c;h=89b64624036ebd5f16ae0256d46f27a90482e5d0;hb=891ff33aec8906fe8203910a26c56650ce74b904;hp=e7ece3a0a58601b8d99a22b40ec1a10959e28422;hpb=ed160c85898e726c7daf6b329f5e807e760ba3ed;p=plomrogue diff --git a/roguelike.c b/roguelike.c index e7ece3a..89b6462 100644 --- a/roguelike.c +++ b/roguelike.c @@ -44,6 +44,7 @@ void draw_map (struct Win *); void draw_info (struct Win *); void draw_keys_window (struct Win *); void toggle_window (struct WinMeta *, struct Win *); +void growshrink_active_window (struct WinMeta *, char); void init_keybindings(struct World *); struct Map init_map (); void map_scroll (struct Map *, char); @@ -192,6 +193,21 @@ void toggle_window (struct WinMeta * win_meta, struct Win * win) { else append_window(win_meta, win); } +void growshrink_active_window (struct WinMeta * win_meta, char change) { +// Grow or shrink active window horizontally or vertically by one cell size. + if (0 != win_meta->active) { + int height = win_meta->active->height; + int width = win_meta->active->width; + if (change == '-') + height--; + else if (change == '+') + height++; + else if (change == '_') + width--; + else if (change == '*') + width++; + resize_active_window (win_meta, height, width); } } + void init_keybindings(struct World * world) { // Initialize keybindings from file "keybindings". FILE * file = fopen("keybindings", "r"); @@ -491,17 +507,17 @@ int main () { else if (key == get_action_key(world.keybindings, "cycle backwards")) cycle_active_window(&win_meta, 'p'); else if (key == get_action_key(world.keybindings, "shift forwards")) - shift_window(&win_meta, 'f'); + shift_active_window(&win_meta, 'f'); else if (key == get_action_key(world.keybindings, "shift backwards")) - shift_window(&win_meta, 'b'); - else if (key == get_action_key(world.keybindings, "grow horizontally") && win_meta.active != 0) - resize_window(&win_meta, '*'); - else if (key == get_action_key(world.keybindings, "shrink horizontally") && win_meta.active != 0) - resize_window(&win_meta, '_'); - else if (key == get_action_key(world.keybindings, "grow vertically") && win_meta.active != 0) - resize_window(&win_meta, '+'); - else if (key == get_action_key(world.keybindings, "shrink vertically") && win_meta.active != 0) - resize_window(&win_meta, '-'); + shift_active_window(&win_meta, 'b'); + else if (key == get_action_key(world.keybindings, "grow horizontally")) + growshrink_active_window(&win_meta, '*'); + else if (key == get_action_key(world.keybindings, "shrink horizontally")) + growshrink_active_window(&win_meta, '_'); + else if (key == get_action_key(world.keybindings, "grow vertically")) + growshrink_active_window(&win_meta, '+'); + else if (key == get_action_key(world.keybindings, "shrink vertically")) + growshrink_active_window(&win_meta, '-'); else if (key == get_action_key(world.keybindings, "save keys")) save_keybindings(&world); else if (key == get_action_key(world.keybindings, "keys nav up"))