Fix invisible gold symbol in status lines

This commit is contained in:
Pasi Kallinen
2017-09-16 23:49:28 +03:00
parent f36d1036de
commit 2db7e20116
6 changed files with 18 additions and 1 deletions
+1
View File
@@ -438,6 +438,7 @@ if was possible to leash an adjacent pet while engulfed
if leash or unleash attempt was directed at "remembered, unseen monster" glyph if leash or unleash attempt was directed at "remembered, unseen monster" glyph
and yielded "there's no creature there", the glyph wasn't removed and yielded "there's no creature there", the glyph wasn't removed
wizmode level teleport menu indicates on what level you currently are wizmode level teleport menu indicates on what level you currently are
fix invisible gold symbol in status line when S_coin was set to space
Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository
+1
View File
@@ -142,6 +142,7 @@ E int NDECL(getbones);
/* ### botl.c ### */ /* ### botl.c ### */
E char *NDECL(do_statusline1); E char *NDECL(do_statusline1);
E void NDECL(check_gold_symbol);
E char *NDECL(do_statusline2); E char *NDECL(do_statusline2);
E int FDECL(xlev_to_rank, (int)); E int FDECL(xlev_to_rank, (int));
E int FDECL(title_to_mon, (const char *, int *, int *)); E int FDECL(title_to_mon, (const char *, int *, int *));
+1
View File
@@ -191,6 +191,7 @@ struct instance_flags {
* behaviour of various NetHack functions and probably warrant * behaviour of various NetHack functions and probably warrant
* a structure of their own elsewhere some day. * a structure of their own elsewhere some day.
*/ */
boolean invis_goldsym; /* gold symbol is ' '? */
int parse_config_file_src; /* hack for parse_config_line() */ int parse_config_file_src; /* hack for parse_config_line() */
int in_lava_effects; /* hack for Boots_off() */ int in_lava_effects; /* hack for Boots_off() */
int last_msg; /* indicator of last message player saw */ int last_msg; /* indicator of last message player saw */
+12 -1
View File
@@ -83,6 +83,16 @@ do_statusline1()
return newbot1; return newbot1;
} }
void
check_gold_symbol()
{
int goldch, goldoc;
unsigned int goldos;
int goldglyph = objnum_to_glyph(GOLD_PIECE);
(void) mapglyph(goldglyph, &goldch, &goldoc, &goldos, 0, 0);
iflags.invis_goldsym = ((char)goldch <= ' ');
}
char * char *
do_statusline2() do_statusline2()
{ {
@@ -110,7 +120,8 @@ do_statusline2()
if ((money = money_cnt(invent)) < 0L) if ((money = money_cnt(invent)) < 0L)
money = 0L; /* ought to issue impossible() and then discard gold */ money = 0L; /* ought to issue impossible() and then discard gold */
Sprintf(eos(dloc), "%s:%-2ld", /* strongest hero can lift ~300000 gold */ Sprintf(eos(dloc), "%s:%-2ld", /* strongest hero can lift ~300000 gold */
iflags.in_dumplog ? "$" : encglyph(objnum_to_glyph(GOLD_PIECE)), (iflags.in_dumplog || iflags.invis_goldsym) ? "$"
: encglyph(objnum_to_glyph(GOLD_PIECE)),
min(money, 999999L)); min(money, 999999L));
dln = strlen(dloc); dln = strlen(dloc);
/* '$' encoded as \GXXXXNNNN is 9 chars longer than display will need */ /* '$' encoded as \GXXXXNNNN is 9 chars longer than display will need */
+1
View File
@@ -1254,6 +1254,7 @@ boolean at_stairs, falling, portal;
#ifdef USE_TILES #ifdef USE_TILES
substitute_tiles(newlevel); substitute_tiles(newlevel);
#endif #endif
check_gold_symbol();
/* record this level transition as a potential seen branch unless using /* record this level transition as a potential seen branch unless using
* some non-standard means of transportation (level teleport). * some non-standard means of transportation (level teleport).
*/ */
+2
View File
@@ -3651,6 +3651,7 @@ boolean tinitial, tfrom_file;
/* Is it a symbol? */ /* Is it a symbol? */
if (strstr(opts, "S_") == opts && parsesymbols(opts)) { if (strstr(opts, "S_") == opts && parsesymbols(opts)) {
switch_symbols(TRUE); switch_symbols(TRUE);
check_gold_symbol();
return retval; return retval;
} }
@@ -4152,6 +4153,7 @@ doset() /* changing options via menu by Per Liboriussen */
destroy_nhwindow(tmpwin); destroy_nhwindow(tmpwin);
if (need_redraw) { if (need_redraw) {
check_gold_symbol();
reglyph_darkroom(); reglyph_darkroom();
(void) doredraw(); (void) doredraw();
} }