summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/tags.cc
diff options
context:
space:
mode:
authorNeil Moore <neil@s-z.org>2014-05-26 22:39:22 -0400
committerNeil Moore <neil@s-z.org>2014-05-26 22:42:13 -0400
commit48b52eb32c4f1c0e7540910859bff149e9c4791d (patch)
tree8969d019890894c0f952a565aa9087f803310c25 /crawl-ref/source/tags.cc
parent8b3ed72c90b7b45a66457868aa324931a31c304f (diff)
downloadcrawl-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.cc12
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