diff options
author | Neil Moore <neil@s-z.org> | 2014-05-26 22:39:22 -0400 |
---|---|---|
committer | Neil Moore <neil@s-z.org> | 2014-05-26 22:42:13 -0400 |
commit | 48b52eb32c4f1c0e7540910859bff149e9c4791d (patch) | |
tree | 8969d019890894c0f952a565aa9087f803310c25 /crawl-ref/source/tags.cc | |
parent | 8b3ed72c90b7b45a66457868aa324931a31c304f (diff) | |
download | crawl-ref-48b52eb32c4f1c0e7540910859bff149e9c4791d.tar.gz crawl-ref-48b52eb32c4f1c0e7540910859bff149e9c4791d.zip |
Correctly carry over old fruit autopickup.
Use a new tag because there may be incorrectly transferred saves that
forgot their old fruit pickup setting.
Diffstat (limited to 'crawl-ref/source/tags.cc')
-rw-r--r-- | crawl-ref/source/tags.cc | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/crawl-ref/source/tags.cc b/crawl-ref/source/tags.cc index c519a1c878..89c5b68c2e 100644 --- a/crawl-ref/source/tags.cc +++ b/crawl-ref/source/tags.cc @@ -3135,12 +3135,22 @@ static void tag_read_you_items(reader &th) { const int oldstate = you.force_autopickup[OBJ_FOOD][NUM_FOODS]; you.force_autopickup[OBJ_FOOD][FOOD_MEAT_RATION] = oldstate; - you.force_autopickup[OBJ_FOOD][FOOD_PEAR] = oldstate; + you.force_autopickup[OBJ_FOOD][FOOD_FRUIT] = oldstate; you.force_autopickup[OBJ_FOOD][FOOD_ROYAL_JELLY] = oldstate; you.force_autopickup[OBJ_BOOKS][BOOK_MANUAL] = you.force_autopickup[OBJ_BOOKS][NUM_BOOKS]; } + if (th.getMinorVersion() < TAG_MINOR_FOOD_PURGE_AP_FIX) + { + FixedVector<int, MAX_SUBTYPES> &food_pickups = + you.force_autopickup[OBJ_FOOD]; + + // If fruit pickup was not set explicitly during the time between + // FOOD_PURGE and FOOD_PURGE_AP_FIX, copy the old exemplar FOOD_PEAR. + if (food_pickups[FOOD_FRUIT] == 0) + food_pickups[FOOD_FRUIT] = food_pickups[FOOD_PEAR]; + } if (you.species == SP_FORMICID) remove_one_equip(EQ_HELMET, false, true); #endif |