home
·
contact
·
privacy
projects
/
plomrogue
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Maps are always squares, therefore define only their edge lengths.
[plomrogue]
/
src
/
client
/
draw_wins.c
diff --git
a/src/client/draw_wins.c
b/src/client/draw_wins.c
index 590d8c53cd49aa90afbc531c499fd05033a7d851..69278e8393631a351326ae725e682a304a267ab7 100644
(file)
--- a/
src/client/draw_wins.c
+++ b/
src/client/draw_wins.c
@@
-1,5
+1,6
@@
/* src/client/draw_wins.c */
/* 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 */
#include "draw_wins.h"
#include <ncurses.h> /* typedefs attr_t, chtype, define A_REVERSE */
#include <stddef.h> /* NULL */
@@
-9,9
+10,8
@@
#include <string.h> /* memset(), strchr(), strdup/(), strlen() */
#include "../common/rexit.h" /* exit_err() */
#include "../common/try_malloc.h" /* try_malloc() */
#include <string.h> /* memset(), strchr(), strdup/(), strlen() */
#include "../common/rexit.h" /* exit_err() */
#include "../common/try_malloc.h" /* try_malloc() */
-#include "../common/yx_uint16.h" /* struct yx_uint16 */
#include "keybindings.h" /* struct KeyBindingDB, get_keyname_to_keycode() */
#include "keybindings.h" /* struct KeyBindingDB, get_keyname_to_keycode() */
-#include "windows.h" /*
struct
Win, get_win_by_id() */
+#include "windows.h" /*
yx_uint16,
Win, get_win_by_id() */
#include "world.h" /* global world */
#include "world.h" /* global world */
@@
-52,7
+52,7
@@
static void add_text_with_linebreaks(struct Win * win, char * text);
static void draw_text_from_bottom(struct Win * win, char * text);
/* Return a properly formatted keybinding list line for "kb". */
static void draw_text_from_bottom(struct Win * win, char * text);
/* Return a properly formatted keybinding list line for "kb". */
-static char * get_kb_line(struct KeyBinding * kb
, uint8_t linebreak_type
);
+static char * get_kb_line(struct KeyBinding * kb);
/* Draw from line "start" on config view for keybindings defined at "kb". */
static void draw_keybinding_config(struct Win * win, struct KeyBindingDB * kbdb,
/* Draw from line "start" on config view for keybindings defined at "kb". */
static void draw_keybinding_config(struct Win * win, struct KeyBindingDB * kbdb,
@@
-185,7
+185,8
@@
static void add_line_compact(struct Win * win, char * line, attr_t attri,
uint32_t len_line_new = len_line + strlen(separator);
char line_new[len_line_new];
sprintf(line_new, "%s%s", line, separator);
uint32_t len_line_new = len_line + strlen(separator);
char line_new[len_line_new];
sprintf(line_new, "%s%s", line, separator);
- uint16_t x, y;
+ uint16_t x = 0;
+ uint16_t y;
uint32_t z;
for (z = 0, y = y_start; z < len_line_new; y++)
{
uint32_t z;
for (z = 0, y = y_start; z < len_line_new; y++)
{
@@
-203,7
+204,7
@@
static void add_line_compact(struct Win * win, char * line, attr_t attri,
try_resize_winmap(win, y + 1 + 1, win->winmap_size.x);
}
}
try_resize_winmap(win, y + 1 + 1, win->winmap_size.x);
}
}
- *
offset = x;
+ *offset = x;
}
}
@@
-254,20
+255,13
@@
static void draw_text_from_bottom(struct Win * win, char * text)
-static char * get_kb_line(struct KeyBinding * kb
, uint8_t linebreak_type
)
+static char * get_kb_line(struct KeyBinding * kb)
{
char * f_name = "get_kb_line()";
char * keyname = get_keyname_to_keycode(kb->keycode);
{
char * f_name = "get_kb_line()";
char * keyname = get_keyname_to_keycode(kb->keycode);
- char * format = "%-9s %s";
- uint16_t first_size = 9;
- if (1 != linebreak_type)
- {
- format = "%s: %s";
- first_size = strlen(keyname) + 1;
- }
- uint16_t size = first_size + 1 + strlen(kb->command->dsc_long) + 1;
+ uint16_t size = strlen(keyname) + 3 + strlen(kb->command->dsc_long) + 1;
char * kb_line = try_malloc(size, f_name);
char * kb_line = try_malloc(size, f_name);
- sprintf(kb_line,
format
, keyname, kb->command->dsc_long);
+ sprintf(kb_line,
"%s - %s"
, keyname, kb->command->dsc_long);
free(keyname);
return kb_line;
}
free(keyname);
return kb_line;
}
@@
-282,7
+276,7
@@
static void draw_keybinding_config(struct Win * win, struct KeyBindingDB * kbdb,
add_line(win, "(none)", 0, &offset, 0);
return;
}
add_line(win, "(none)", 0, &offset, 0);
return;
}
- uint
16
_t kb_n;
+ uint
8
_t kb_n;
for (kb_n = 0; kb_n < kbdb->n_of_kbs; kb_n++)
{
attr_t attri = 0;
for (kb_n = 0; kb_n < kbdb->n_of_kbs; kb_n++)
{
attr_t attri = 0;
@@
-295,7
+289,7
@@
static void draw_keybinding_config(struct Win * win, struct KeyBindingDB * kbdb,
}
win->center.y = win->winmap_size.y;
}
}
win->center.y = win->winmap_size.y;
}
- char * kb_line = get_kb_line(&kbdb->kbs[kb_n]
, win->linebreak
);
+ char * kb_line = get_kb_line(&kbdb->kbs[kb_n]);
add_line(win, kb_line, attri, &offset, (kbdb->n_of_kbs == kb_n + 1));
free(kb_line);
}
add_line(win, kb_line, attri, &offset, (kbdb->n_of_kbs == kb_n + 1));
free(kb_line);
}
@@
-308,7
+302,7
@@
static void draw_titled_keybinding_list(char * title, struct Win * win,
struct KeyBindingDB * kbdb)
{
uint8_t state = 0;
struct KeyBindingDB * kbdb)
{
uint8_t state = 0;
- uint
16
_t kb_n = 0;
+ uint
8
_t kb_n = 0;
while (0 == state || kb_n < kbdb->n_of_kbs)
{
if (0 == state)
while (0 == state || kb_n < kbdb->n_of_kbs)
{
if (0 == state)
@@
-318,7
+312,7
@@
static void draw_titled_keybinding_list(char * title, struct Win * win,
state = 1 + (0 == kbdb->n_of_kbs);
continue;
}
state = 1 + (0 == kbdb->n_of_kbs);
continue;
}
- char * kb_line = get_kb_line(&kbdb->kbs[kb_n]
, win->linebreak
);
+ char * kb_line = get_kb_line(&kbdb->kbs[kb_n]);
add_line(win, kb_line, 0, offset, (last * kbdb->n_of_kbs == kb_n + 1));
free(kb_line);
kb_n++;
add_line(win, kb_line, 0, offset, (last * kbdb->n_of_kbs == kb_n + 1));
free(kb_line);
kb_n++;
@@
-344,14
+338,14
@@
extern void draw_win_log(struct Win * win)
extern void draw_win_map(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.
length, world.map.length * 2
);
uint16_t z = 0;
uint16_t x, y;
uint16_t z = 0;
uint16_t x, y;
- for (y = 0; y < world.map.
size.y
; y++)
+ for (y = 0; y < world.map.
length
; y++)
{
{
- for (x = 0; x < world.map.
size.x
; x++)
+ for (x = 0; x < world.map.
length
; 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++;
}
}
z++;
}
}
@@
-403,14
+397,10
@@
extern void draw_win_inventory(struct Win * win)
extern void draw_win_available_keybindings(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);
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;
}
{
kbdb = &world.kb_wingeom;
}
@@
-421,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);
uint16_t offset = 0;
draw_titled_keybinding_list(title, win, &offset, 0, kbdb);
add_line(win, " ", 0, &offset, 0);
- title = "Global key
binding
s:";
+ title = "Global keys:";
draw_titled_keybinding_list(title, win, &offset, 1, &world.kb_global);
}
draw_titled_keybinding_list(title, win, &offset, 1, &world.kb_global);
}
@@
-454,7
+444,7
@@
extern void draw_win_keybindings_winconf_keybindings(struct Win * win)
extern void draw_winconf_keybindings(struct Win * win)
{
extern void draw_winconf_keybindings(struct Win * win)
{
- char * title = "Window's key
binding
s:";
+ char * title = "Window's keys:";
uint16_t offset = 0;
add_line(win, title, 0, &offset, 0);
add_line(win, " ", 0, &offset, 0);
uint16_t offset = 0;
add_line(win, title, 0, &offset, 0);
add_line(win, " ", 0, &offset, 0);