X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=roguelike.c;h=bc971d4fba4fc4c6739f93b3257ec6b2dbb5e74d;hb=8e65812566e9109f3d672ddfb4c4a30f042f917f;hp=bc21ab5a0dfb5b6c23bbc51fac3b514f777b5e81;hpb=336d57bf85ed4b64307dea367c696ec9b477504a;p=plomrogue
diff --git a/roguelike.c b/roguelike.c
index bc21ab5..bc971d4 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");
@@ -495,13 +511,13 @@ int main () {
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"))
- 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"))