commit d9488c74f50b137dc91851437ffa4cbaf64c1d00
parent e6daee96e9c73d29f6e51e8400d66a3511d36526
Author: Julian Schweinsberg <pazz0@0xfa.de>
Date: Mon, 31 Mar 2025 17:55:39 +0200
Some sort of maintenance of ui_rogue
- Add Rainer Holzner's fix, regarding Ctrl+D in uiprompt, to ui_rogue
- Change tparm to tiparm
- Add something important to the ui_rogue_readme
Diffstat:
2 files changed, 62 insertions(+), 61 deletions(-)
diff --git a/ui_rogue.c b/ui_rogue.c
@@ -651,10 +651,10 @@ dla(struct rect *rects, size_t l, uint32_t prng) {
void
rendermapchar(size_t i, size_t j) {
if (map[i][j].tile->flags & Standout)
- putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(enter_standout_mode));
putchar(map[i][j].tile->c);
if (map[i][j].tile->flags & Standout)
- putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(exit_standout_mode));
}
void
@@ -687,7 +687,7 @@ rendermap(void)
for (i = oy; i < min(MAPHEIGHT, oy + (lines - 2)); i++) {
if (i != oy)
- putp(tparm(cursor_down, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_down));
rendermapline(i);
}
}
@@ -970,7 +970,7 @@ uisetup(void)
if (termset != OK)
/* setupterm call exits on error */
termset = setupterm(NULL, 1, NULL);
- putp(tparm(clear_screen, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(clear_screen));
fflush(stdout);
}
@@ -982,8 +982,8 @@ uicleanup(void)
if (termset != OK)
return;
- putp(tparm(change_scroll_region, 0, lines-1, 0, 0, 0, 0, 0, 0, 0));
- putp(tparm(clear_screen, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(change_scroll_region, 0, lines-1));
+ putp(tiparm(clear_screen));
fflush(stdout);
}
@@ -995,10 +995,10 @@ uiprompt(char *fmt, ...)
size_t n;
ssize_t r;
- putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(save_cursor));
- putp(tparm(cursor_address, lines-1, 0, 0, 0, 0, 0, 0, 0, 0));
- putp(tparm(clr_eol, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, lines-1, 0));
+ putp(tiparm(clr_eol));
va_start(ap, fmt);
vsnprintf(bufout, sizeof(bufout), fmt, ap);
@@ -1006,9 +1006,9 @@ uiprompt(char *fmt, ...)
n = mbsprint(bufout, columns);
- putp(tparm(clr_eol, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(clr_eol));
- putp(tparm(cursor_address, lines-1, n, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, lines-1, n));
tsacc.c_lflag |= (ECHO|ICANON);
tcsetattr(0, TCSANOW, &tsacc);
@@ -1019,10 +1019,10 @@ uiprompt(char *fmt, ...)
tsacc.c_lflag &= ~(ECHO|ICANON);
tcsetattr(0, TCSANOW, &tsacc);
- putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(restore_cursor));
fflush(stdout);
- if (r == -1) {
+ if (r == -1 || feof(stdin)) {
clearerr(stdin);
clear(&input);
} else if (input[r - 1] == '\n') {
@@ -1036,35 +1036,35 @@ void
displaybar(char *s) {
size_t n;
- putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(save_cursor));
- putp(tparm(cursor_address, lines-2, 0, 0, 0, 0, 0, 0, 0, 0));
- putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, lines-2, 0));
+ putp(tiparm(enter_standout_mode));
n = mbsprint(s, columns);
for (n = columns - n; n; n--)
putchar(' ');
- putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(exit_standout_mode));
- putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(restore_cursor));
fflush(stdout);
}
void
vdisplayinfoline(char *fmt, va_list ap)
{
- putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(save_cursor));
- putp(tparm(cursor_address, lines-1, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, lines-1, 0));
vsnprintf(bufout, sizeof(bufout), fmt, ap);
mbsprint(bufout, columns);
- putp(tparm(clr_eol, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(clr_eol));
- putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(restore_cursor));
fflush(stdout);
}
@@ -1074,9 +1074,9 @@ uistatus(char *fmt, ...)
va_list ap;
size_t n;
- putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(save_cursor));
- putp(tparm(cursor_address, lines-1, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, lines-1, 0));
va_start(ap, fmt);
n = vsnprintf(bufout, sizeof(bufout), fmt, ap);
@@ -1089,9 +1089,9 @@ uistatus(char *fmt, ...)
mbsprint(bufout, columns);
- putp(tparm(clr_eol, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(clr_eol));
- putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(restore_cursor));
fflush(stdout);
mygetchar();
@@ -1118,25 +1118,25 @@ menudraw(void)
{
size_t i, n;
- putp(tparm(change_scroll_region, 1, lines-1, 0, 0, 0, 0, 0, 0, 0));
- putp(tparm(clear_screen, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(change_scroll_region, 1, lines-1));
+ putp(tiparm(clear_screen));
- putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(enter_standout_mode));
puts(menutitle);
- putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(exit_standout_mode));
if (menuselected - menuoffset >= lines - 1)
menuoffset = menuselected - (lines - 1) + 1;
for (i = menuoffset, n = 0; i < menunitems && n < lines - 1; i++, n++) {
if (i != menuoffset)
- putp(tparm(cursor_down, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_down));
if (i == menuselected)
- putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(enter_standout_mode));
mbsprint(menuitems[i]->username, columns);
if (i == menuselected)
- putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0));
- putp(tparm(column_address, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(exit_standout_mode));
+ putp(tiparm(column_address, 0));
}
fflush(stdout);
}
@@ -1159,36 +1159,36 @@ showmenu(char *title, Item **item, size_t l)
switch (mygetchar()) {
case 'j':
if (menuselected + 1 < menunitems) {
- putp(tparm(cursor_address, 1 + menuselected - menuoffset, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, 1 + menuselected - menuoffset, 0));
mbsprint(menuitems[menuselected]->username, columns);
menuselected++;
- putp(tparm(column_address, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(column_address, 0));
if (menuselected - menuoffset >= lines - 1) {
menuoffset++;
- putp(tparm(scroll_forward, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(scroll_forward));
} else {
- putp(tparm(cursor_down, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_down));
}
- putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(enter_standout_mode));
mbsprint(menuitems[menuselected]->username, columns);
- putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(exit_standout_mode));
}
break;
case 'k':
if (menuselected > 0) {
- putp(tparm(cursor_address, 1 + menuselected - menuoffset, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, 1 + menuselected - menuoffset, 0));
mbsprint(menuitems[menuselected]->username, columns);
menuselected--;
- putp(tparm(column_address, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(column_address, 0));
if (menuselected < menuoffset) {
menuoffset = menuselected;
- putp(tparm(scroll_reverse, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(scroll_reverse));
} else {
- putp(tparm(cursor_up, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_up));
}
- putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(enter_standout_mode));
mbsprint(menuitems[menuselected]->username, columns);
- putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(exit_standout_mode));
}
break;
case ' ':
@@ -1259,14 +1259,14 @@ describe(size_t x, size_t y, int verbose)
void
dungeondraw(void)
{
- putp(tparm(change_scroll_region, 0, lines-3, 0, 0, 0, 0, 0, 0, 0));
- putp(tparm(clear_screen, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(change_scroll_region, 0, lines-3));
+ putp(tiparm(clear_screen));
rendermap();
- putp(tparm(cursor_address, py - oy, px - ox, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, py - oy, px - ox));
putchar('@');
- putp(tparm(cursor_address, py - oy, px - ox, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, py - oy, px - ox));
if (curentry->entry != curentry) {
displaybar(curentry->username);
@@ -1305,14 +1305,14 @@ move(ssize_t dx, ssize_t dy)
nox = x - columns / 2;
if (ox != nox) {
- putp(tparm(cursor_address, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, 0, 0));
rendermap();
} else {
- putp(tparm(cursor_address, py - oy, px - ox, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, py - oy, px - ox));
rendermapchar(py, px);
}
} else if (dy) {
- putp(tparm(cursor_address, py - oy, px - ox, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, py - oy, px - ox));
rendermapchar(py, px);
if (y < maplines / 2 || MAPHEIGHT <= maplines) {
@@ -1324,18 +1324,18 @@ move(ssize_t dx, ssize_t dy)
}
if (noy < oy) {
- putp(tparm(cursor_address, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, 0, 0));
for (i = (ssize_t)oy - 1; i >= (ssize_t)noy; i--) {
- putp(tparm(scroll_reverse, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(scroll_reverse));
rendermapline(i);
- putp(tparm(column_address, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(column_address, 0));
}
} else if (noy > oy) {
- putp(tparm(cursor_address, lines-3, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, lines-3, 0));
for (i = oy + 1; i <= noy; i++) {
- putp(tparm(scroll_forward, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(scroll_forward));
rendermapline(i + maplines - 1);
- putp(tparm(column_address, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(column_address, 0));
}
}
oy = noy;
@@ -1343,9 +1343,9 @@ move(ssize_t dx, ssize_t dy)
py = y;
px = x;
- putp(tparm(cursor_address, py - oy, px - ox, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, py - oy, px - ox));
putchar('@');
- putp(tparm(cursor_address, py - oy, px - ox, 0, 0, 0, 0, 0, 0, 0));
+ putp(tiparm(cursor_address, py - oy, px - ox));
describe(px, py, 0);
}
diff --git a/ui_rogue_readme b/ui_rogue_readme
@@ -17,6 +17,7 @@ space: interact (in dungeon), select (in menu)
ESC or q: exit (in dungeon), close menu
# Map explanation
+@: That's you!
E or ?: bookshelf/book (gopher type '0')
L or >: elevator/staircase down/staircase up (gopher type '1' on the current server)
O or 0: portal machine/portal (gopher type '1' on another server)