Fix invisible gold symbol in status lines
This commit is contained in:
@@ -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
|
||||
and yielded "there's no creature there", the glyph wasn't removed
|
||||
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
|
||||
|
||||
@@ -142,6 +142,7 @@ E int NDECL(getbones);
|
||||
/* ### botl.c ### */
|
||||
|
||||
E char *NDECL(do_statusline1);
|
||||
E void NDECL(check_gold_symbol);
|
||||
E char *NDECL(do_statusline2);
|
||||
E int FDECL(xlev_to_rank, (int));
|
||||
E int FDECL(title_to_mon, (const char *, int *, int *));
|
||||
|
||||
@@ -191,6 +191,7 @@ struct instance_flags {
|
||||
* behaviour of various NetHack functions and probably warrant
|
||||
* 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 in_lava_effects; /* hack for Boots_off() */
|
||||
int last_msg; /* indicator of last message player saw */
|
||||
|
||||
13
src/botl.c
13
src/botl.c
@@ -83,6 +83,16 @@ do_statusline1()
|
||||
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 *
|
||||
do_statusline2()
|
||||
{
|
||||
@@ -110,7 +120,8 @@ do_statusline2()
|
||||
if ((money = money_cnt(invent)) < 0L)
|
||||
money = 0L; /* ought to issue impossible() and then discard 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));
|
||||
dln = strlen(dloc);
|
||||
/* '$' encoded as \GXXXXNNNN is 9 chars longer than display will need */
|
||||
|
||||
1
src/do.c
1
src/do.c
@@ -1254,6 +1254,7 @@ boolean at_stairs, falling, portal;
|
||||
#ifdef USE_TILES
|
||||
substitute_tiles(newlevel);
|
||||
#endif
|
||||
check_gold_symbol();
|
||||
/* record this level transition as a potential seen branch unless using
|
||||
* some non-standard means of transportation (level teleport).
|
||||
*/
|
||||
|
||||
@@ -3651,6 +3651,7 @@ boolean tinitial, tfrom_file;
|
||||
/* Is it a symbol? */
|
||||
if (strstr(opts, "S_") == opts && parsesymbols(opts)) {
|
||||
switch_symbols(TRUE);
|
||||
check_gold_symbol();
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -4152,6 +4153,7 @@ doset() /* changing options via menu by Per Liboriussen */
|
||||
|
||||
destroy_nhwindow(tmpwin);
|
||||
if (need_redraw) {
|
||||
check_gold_symbol();
|
||||
reglyph_darkroom();
|
||||
(void) doredraw();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user