Fix save compatibility props initialization
authorEdgar A. Bering IV <trizor@gmail.com>
Fri, 26 Feb 2021 23:50:09 +0000 (01:50 +0200)
committerEdgar A. Bering IV <trizor@gmail.com>
Fri, 26 Feb 2021 23:50:09 +0000 (01:50 +0200)
crawl-ref/source/god-passive.cc
crawl-ref/source/religion.cc
crawl-ref/source/religion.h

index 310e819..18e00ba 100644 (file)
@@ -588,6 +588,11 @@ void ash_check_bondage()
     if (!will_have_passive(passive_t::bondage_skill_boost))
         return;
 
+#if TAG_MAJOR_VERSION == 34
+    // Save compatibility for the new ash tag minor forgot to do this
+    initialize_ashenzari_props();
+#endif
+
     int num_cursed = 0, num_slots = 0;
 
     you.skill_boost.clear();
index 6fbf40c..934480b 100644 (file)
@@ -3392,6 +3392,19 @@ static void _check_good_god_wrath(god_type old_god)
     }
 }
 
+void initialize_ashenzari_props()
+{
+    if (!you.props.exists(ASHENZARI_CURSE_PROGRESS_KEY))
+        you.props[ASHENZARI_CURSE_PROGRESS_KEY] = 0;
+    if (!you.props.exists(ASHENZARI_CURSE_DELAY_KEY))
+    {
+        int delay = 50;
+        if (crawl_state.game_is_sprint())
+            delay /= SPRINT_MULTIPLIER;
+        you.props[ASHENZARI_CURSE_DELAY_KEY] = delay;
+    }
+}
+
 /// Handle basic god piety & related setup for a new-joined god.
 static void _set_initial_god_piety()
 {
@@ -3411,14 +3424,7 @@ static void _set_initial_god_piety()
         you.piety = 15; // piety level is set directly by curses
         you.piety_hysteresis = 0;
         you.gift_timeout = 0;
-
-        you.props[ASHENZARI_CURSE_PROGRESS_KEY] = 0;
-        {
-            int delay = 50;
-            if (crawl_state.game_is_sprint())
-                delay /= SPRINT_MULTIPLIER;
-            you.props[ASHENZARI_CURSE_DELAY_KEY] = delay;
-        }
+        initialize_ashenzari_props();
         break;
 
     case GOD_RU:
index a160ddf..6c1f39b 100644 (file)
@@ -109,6 +109,8 @@ bool god_hates_spell(spell_type spell, god_type god, bool fake_spell = false);
 bool god_loathes_spell(spell_type spell, god_type god);
 string god_spell_warn_string(spell_type spell, god_type god);
 bool god_hates_ability(ability_type ability, god_type god);
+
+void initialize_ashenzari_props();
 lifesaving_chance elyvilon_lifesaving();
 bool god_protects_from_harm();
 bool jiyva_is_dead();