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"))