Introduction
Introduction Statistics Contact Development Disclaimer Help
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)
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.