more display of T-shirt/apron text at end-of-game
This doesn't directly affect nethack, but it should prevent HTML
dumplog for variants that include that from showing T-shirt and
apron slogan text in tooltips for the 'gameover' map. And it makes
end-of-game attribute disclosure slightly less susceptible to being
unintentionally reverted.
Code in pull request #300 shows that it uses do_screen_description()
for tooltips and do_screen_description() uses distant_name() for
objects so that's where I added this change that will trigger the
code from commit c6992777f5.
This commit is contained in:
19
src/objnam.c
19
src/objnam.c
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.7 objnam.c $NHDT-Date: 1702349266 2023/12/12 02:47:46 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.407 $ */
|
/* NetHack 3.7 objnam.c $NHDT-Date: 1711809641 2024/03/30 14:40:41 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.427 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Robert Patrick Rankin, 2011. */
|
/*-Copyright (c) Robert Patrick Rankin, 2011. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -340,6 +340,7 @@ distant_name(
|
|||||||
char *(*func)(OBJ_P)) /* formatting routine (usually xname or doname) */
|
char *(*func)(OBJ_P)) /* formatting routine (usually xname or doname) */
|
||||||
{
|
{
|
||||||
char *str;
|
char *str;
|
||||||
|
unsigned save_oid;
|
||||||
coordxy ox = 0, oy = 0;
|
coordxy ox = 0, oy = 0;
|
||||||
/*
|
/*
|
||||||
* (r * r): square of the x or y distance;
|
* (r * r): square of the x or y distance;
|
||||||
@@ -360,6 +361,19 @@ distant_name(
|
|||||||
int r = (u.xray_range > 2) ? u.xray_range : 2,
|
int r = (u.xray_range > 2) ? u.xray_range : 2,
|
||||||
neardist = (r * r) * 2 - r; /* same as r*r + r*(r-1) */
|
neardist = (r * r) * 2 - r; /* same as r*r + r*(r-1) */
|
||||||
|
|
||||||
|
/* setting o_id to 0 prevents xname() from adding T-shirt or apron
|
||||||
|
slogan, Hawaiian shirt motif, or candy wrapper label when called
|
||||||
|
with 'program_state.gameover' set; we want this suppression for
|
||||||
|
html-dump (not implemented in nethack) to prevent object-on-map
|
||||||
|
tooltips from including that extra text; also guards against a
|
||||||
|
potential change to minimal_xname() [indirectly used by attribute
|
||||||
|
disclosure] that propogates o_id rather than leave it 0, and
|
||||||
|
against a potential extra chance to browse the map with getpos()
|
||||||
|
during final disclosure (not currently implemented, nor planned) */
|
||||||
|
save_oid = obj->o_id;
|
||||||
|
if (gp.program_state.gameover)
|
||||||
|
obj->o_id = 0;
|
||||||
|
|
||||||
/* this maybe-nearby part used to be replicated in multiple callers */
|
/* this maybe-nearby part used to be replicated in multiple callers */
|
||||||
if (get_obj_location(obj, &ox, &oy, 0) && cansee(ox, oy)
|
if (get_obj_location(obj, &ox, &oy, 0) && cansee(ox, oy)
|
||||||
&& (obj->oartifact || distu(ox, oy) <= neardist)) {
|
&& (obj->oartifact || distu(ox, oy) <= neardist)) {
|
||||||
@@ -379,6 +393,9 @@ distant_name(
|
|||||||
str = (*func)(obj);
|
str = (*func)(obj);
|
||||||
--gd.distantname;
|
--gd.distantname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
obj->o_id = save_oid; /* reset to normal */
|
||||||
|
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user