home · contact · privacy
Client: Fix bug that made horizontal scrolling jump back on large maps.
[plomrogue] / src / client / draw_wins.c
index ed7815e8aac2f4357bb260436855a26fc40177fc..dc655e76dad51d71d522794a2e240bfa50dbde19 100644 (file)
@@ -1,5 +1,6 @@
 /* src/client/draw_wins.c */
 
+#define _POSIX_C_SOURCE 200809L /* strdup() */
 #include "draw_wins.h"
 #include <ncurses.h> /* typedefs attr_t, chtype, define A_REVERSE */
 #include <stddef.h> /* NULL */
@@ -275,7 +276,7 @@ static void draw_keybinding_config(struct Win * win, struct KeyBindingDB * kbdb,
         add_line(win, "(none)", 0, &offset, 0);
         return;
     }
-    uint16_t kb_n;
+    uint8_t kb_n;
     for (kb_n = 0; kb_n < kbdb->n_of_kbs; kb_n++)
     {
         attr_t attri = 0;
@@ -301,7 +302,7 @@ static void draw_titled_keybinding_list(char * title, struct Win * win,
                                         struct KeyBindingDB * kbdb)
 {
     uint8_t state = 0;
-    uint16_t kb_n = 0;
+    uint8_t kb_n = 0;
     while (0 == state || kb_n < kbdb->n_of_kbs)
     {
         if (0 == state)
@@ -337,14 +338,14 @@ extern void draw_win_log(struct Win * win)
 
 extern void draw_win_map(struct Win * win)
 {
-    try_resize_winmap(win, world.map.size.y, world.map.size.x);
+    try_resize_winmap(win, world.map.size.y, world.map.size.x * 2);
     uint16_t z = 0;
     uint16_t x, y;
     for (y = 0; y < world.map.size.y; y++)
     {
         for (x = 0; x < world.map.size.x; x++)
         {
-            set_ch_on_yx(win, y, x, world.map.cells[z]);
+            set_ch_on_yx(win, y, x * 2 + (y % 2), world.map.cells[z]);
             z++;
         }
     }
@@ -396,14 +397,10 @@ extern void draw_win_inventory(struct Win * win)
 
 extern void draw_win_available_keybindings(struct Win * win)
 {
-    char * title = "Active window's keybindings:";
-    struct KeyBindingDB * kbdb;
+    char * title = "Active window's keys:";
     struct Win * win_active = get_win_by_id(world.winDB.active);
-    if     (0 == win_active->view)
-    {
-        kbdb = &win_active->kb;
-    }
-    else if (1 == win_active->view)
+    struct KeyBindingDB * kbdb = &win_active->kb;
+    if      (1 == win_active->view)
     {
         kbdb = &world.kb_wingeom;
     }
@@ -414,7 +411,7 @@ extern void draw_win_available_keybindings(struct Win * win)
     uint16_t offset = 0;
     draw_titled_keybinding_list(title, win, &offset, 0, kbdb);
     add_line(win, " ", 0, &offset, 0);
-    title = "Global keybindings:";
+    title = "Global keys:";
     draw_titled_keybinding_list(title, win, &offset, 1, &world.kb_global);
 }
 
@@ -447,7 +444,7 @@ extern void draw_win_keybindings_winconf_keybindings(struct Win * win)
 
 extern void draw_winconf_keybindings(struct Win * win)
 {
-    char * title = "Window's keybindings:";
+    char * title = "Window's keys:";
     uint16_t offset = 0;
     add_line(win, title, 0, &offset, 0);
     add_line(win, " ", 0, &offset, 0);