(likewise for polymorph trap, and similar issue for web)
show all statusline information in #attributes
add option status_updates to prevent bottom of screen status line updates
+fix achievement recording bug with mines and sokoban prizes
Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository
&& !undiscovered_artifact(ART_EYES_OF_THE_OVERWORLD)))
#define pair_of(o) ((o)->otyp == LENSES || is_gloves(o) || is_boots(o))
+#define is_mines_prize(o) \
+ ((o)->otyp == LUCKSTONE && Is_mineend_level(&u.uz))
+#define is_soko_prize(o) \
+ (((o)->otyp == AMULET_OF_REFLECTION \
+ || (o)->otyp == BAG_OF_HOLDING) \
+ && Is_sokoend_level(&u.uz))
+
+
/* Flags for get_obj_location(). */
#define CONTAINED_TOO 0x1
#define BURIED_TOO 0x2
}
set_artifact_intrinsic(obj, 1, W_ART);
}
- if (obj->otyp == LUCKSTONE && obj->record_achieve_special) {
+ if (is_mines_prize(obj) && obj->record_achieve_special) {
u.uachieve.mines_luckstone = 1;
obj->record_achieve_special = 0;
- } else if ((obj->otyp == AMULET_OF_REFLECTION
- || obj->otyp == BAG_OF_HOLDING)
- && obj->record_achieve_special) {
+ } else if (is_soko_prize(obj) && obj->record_achieve_special) {
u.uachieve.finish_sokoban = 1;
obj->record_achieve_special = 0;
}
* "prize" and then set record_achieve_special (maps to corpsenm)
* for the object. That field will later be checked to find out if
* the player obtained the prize. */
- if (otmp->otyp == LUCKSTONE && Is_mineend_level(&u.uz)) {
- otmp->record_achieve_special = 1;
- } else if ((otmp->otyp == AMULET_OF_REFLECTION
- || otmp->otyp == BAG_OF_HOLDING)
- && Is_sokoend_level(&u.uz)) {
+ if (is_mines_prize(otmp) || is_soko_prize(otmp)) {
otmp->record_achieve_special = 1;
}