diff --git a/doc/fixes37.0 b/doc/fixes37.0 index bded1dc2f..b0637b04f 100644 --- a/doc/fixes37.0 +++ b/doc/fixes37.0 @@ -837,6 +837,8 @@ an item thrown or dropped while swallowed was treated as being picked up by an segfault if gremlin fled weaponless hero wearing gold dragon scales/mail 'disambiguate WHACK' patch affected field layout of objects[] but EDITLEVEL wasn't incremented, allowing incompatable save files to be restored +restore the boulder exception for piletops that had been unintentionally + removed during the expanded-glyphs changes curses: 'msg_window' option wasn't functional for curses unless the binary also included tty support diff --git a/include/display.h b/include/display.h index 952d4b8a0..ac3971b38 100644 --- a/include/display.h +++ b/include/display.h @@ -888,9 +888,17 @@ enum glyph_offsets { ((int) ((obj)->corpsenm + (obj_is_piletop(obj) \ ? GLYPH_BODY_PILETOP_OFF \ : GLYPH_BODY_OFF))) + +/* Paraphrased rationale from the original commit for the boulder + exception: If a boulder is the topmost item on a pile, then it is + not mapped to a piletop glyph; mainly because boulders are "solid"; + boulders dropped by monsters are nearly always over other objects; + also done so that special levels such a Sokoban can "hide" items + under the boulders. */ #define normal_obj_to_glyph(obj) \ - ((int) ((obj)->otyp + (obj_is_piletop(obj) \ - ? GLYPH_OBJ_PILETOP_OFF \ + ((int) ((obj)->otyp + \ + ((obj_is_piletop(obj) && ((obj)->otyp != BOULDER)) \ + ? GLYPH_OBJ_PILETOP_OFF \ : GLYPH_OBJ_OFF))) /* MRKR: Statues now have glyphs corresponding to the monster they */