X-Git-Url: https://plomlompom.com/repos/index.html?a=blobdiff_plain;f=roguelike.c;h=89b64624036ebd5f16ae0256d46f27a90482e5d0;hb=891ff33aec8906fe8203910a26c56650ce74b904;hp=bc21ab5a0dfb5b6c23bbc51fac3b514f777b5e81;hpb=336d57bf85ed4b64307dea367c696ec9b477504a;p=plomrogue
diff --git a/roguelike.c b/roguelike.c
index bc21ab5..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');
+ shift_active_window(&win_meta, 'b');
else if (key == get_action_key(world.keybindings, "grow horizontally"))
- resize_window(&win_meta, '*');
+ growshrink_active_window(&win_meta, '*');
else if (key == get_action_key(world.keybindings, "shrink horizontally"))
- resize_window(&win_meta, '_');
+ growshrink_active_window(&win_meta, '_');
else if (key == get_action_key(world.keybindings, "grow vertically"))
- resize_window(&win_meta, '+');
+ growshrink_active_window(&win_meta, '+');
else if (key == get_action_key(world.keybindings, "shrink vertically"))
- resize_window(&win_meta, '-');
+ 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"))