Some sort of maintenance of ui_rogue - sacc - sacc - sacc(omys), simple console… | |
git clone git://git.codemadness.org/sacc | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit d9488c74f50b137dc91851437ffa4cbaf64c1d00 | |
parent e6daee96e9c73d29f6e51e8400d66a3511d36526 | |
Author: Julian Schweinsberg <[email protected]> | |
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: | |
M ui_rogue.c | 122 ++++++++++++++++-------------… | |
M ui_rogue_readme | 1 + | |
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… | |
+ 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,… | |
- 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 - … | |
+ putp(tiparm(cursor_address, 1 + menuselected -… | |
mbsprint(menuitems[menuselected]->username, co… | |
menuselected++; | |
- putp(tparm(column_address, 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,… | |
+ putp(tiparm(scroll_forward)); | |
} else { | |
- putp(tparm(cursor_down, 0, 0, 0, 0, 0,… | |
+ putp(tiparm(cursor_down)); | |
} | |
- putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0,… | |
+ putp(tiparm(enter_standout_mode)); | |
mbsprint(menuitems[menuselected]->username, co… | |
- putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, … | |
+ putp(tiparm(exit_standout_mode)); | |
} | |
break; | |
case 'k': | |
if (menuselected > 0) { | |
- putp(tparm(cursor_address, 1 + menuselected - … | |
+ putp(tiparm(cursor_address, 1 + menuselected -… | |
mbsprint(menuitems[menuselected]->username, co… | |
menuselected--; | |
- putp(tparm(column_address, 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,… | |
+ putp(tiparm(scroll_reverse)); | |
} else { | |
- putp(tparm(cursor_up, 0, 0, 0, 0, 0, 0… | |
+ putp(tiparm(cursor_up)); | |
} | |
- putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0,… | |
+ putp(tiparm(enter_standout_mode)); | |
mbsprint(menuitems[menuselected]->username, co… | |
- putp(tparm(exit_standout_mode, 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, … | |
+ 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,… | |
+ 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… | |
+ putp(tiparm(scroll_reverse)); | |
rendermapline(i); | |
- putp(tparm(column_address, 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, … | |
+ 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… | |
+ putp(tiparm(scroll_forward)); | |
rendermapline(i + maplines - 1); | |
- putp(tparm(column_address, 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 curre… | |
O or 0: portal machine/portal (gopher type '1' on another server) |