Fix #H5056/bz1086: Bug in Achievement Recording

Bug report was:

> "Completed sokoban" achievement was logged when picking up
> a randomly generated bag of holding in the gnomish mines.

The picking-up code was missing checks for the branches, so
you could get the achievements outside the correct branches.
This commit is contained in:
Pasi Kallinen
2017-02-06 16:42:33 +02:00
parent 0714e38d28
commit 76d7044872
4 changed files with 12 additions and 9 deletions

View File

@@ -342,6 +342,14 @@ struct obj {
&& !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