simplify achievement tracking for special objects
This turned out to be a lot more work than I anticipated, but it is definitely simpler (other than having #wizmakemap take achievements away if you replace the level that contains the 'prize', which wasn't handled before). I cheated and made Mine's End into a no-bones level because the new flagging scheme for luckstone, bag, and amulet can't carry over from one game to another. It probably should have been no-bones all along. Sokoban didn't have this issue because it's already no-bones. Existing save files are invalidated.
This commit is contained in:
@@ -737,9 +737,9 @@ initoptions_init()
|
||||
|
||||
/* for "special achievement" tracking (see obj.h,
|
||||
create_object(sp_lev.c), addinv_core1(invent.c) */
|
||||
iflags.mines_prize_type = LUCKSTONE;
|
||||
iflags.soko_prize_type1 = BAG_OF_HOLDING;
|
||||
iflags.soko_prize_type2 = AMULET_OF_REFLECTION;
|
||||
g.context.achieveo.mines_prize_type = LUCKSTONE;
|
||||
g.context.achieveo.soko_prize_typ1 = BAG_OF_HOLDING;
|
||||
g.context.achieveo.soko_prize_typ2 = AMULET_OF_REFLECTION;
|
||||
|
||||
/* assert( sizeof flags.inv_order == sizeof def_inv_order ); */
|
||||
(void) memcpy((genericptr_t) flags.inv_order,
|
||||
|
||||
Reference in New Issue
Block a user