Accurately track which items have been discovered, even if not #named
This fixes a couple of bugs: a long-standing bug in which writing a scroll by label could fail even if you've already seen a scroll with that label (due to the game not tracking whether or not you've seen a scroll if it doesn't have a name); and a somewhat newer bug in which spellbooks auto-identified by Wizard knowledge were marked as having been encountered (rather than as known but not encountered). Breaks save file compatibility, but not bones files.
This commit is contained in:
@@ -346,7 +346,7 @@ map_object(struct obj *obj, int show)
|
||||
neardist = (r * r) * 2 - r; /* same as r*r + r*(r-1) */
|
||||
|
||||
if (distu(x, y) <= neardist) {
|
||||
obj->dknown = 1;
|
||||
observe_object(obj);
|
||||
glyph = obj_to_glyph(obj, newsym_rn2);
|
||||
}
|
||||
}
|
||||
@@ -1585,7 +1585,7 @@ see_nearby_objects(void)
|
||||
if (!cansee(ix, iy) || distu(ix, iy) > neardist)
|
||||
continue;
|
||||
|
||||
obj->dknown = 1; /* near enough to see it */
|
||||
observe_object(obj);
|
||||
/* operate on remembered glyph rather than current one */
|
||||
glyph = levl[ix][iy].glyph;
|
||||
if (glyph_is_generic_object(glyph))
|
||||
|
||||
Reference in New Issue
Block a user