diff --git a/conf/e3/config.json b/conf/e3/config.json index 8783055b8..1cecc89d2 100644 --- a/conf/e3/config.json +++ b/conf/e3/config.json @@ -42,6 +42,7 @@ "nmr.timeout": 5, "nmr.removenewbie": 0, "GiveRestriction": 3, + "healing.forest": 2.0, "hunger.long": false, "hunger.damage": "1d9+9", "hunger.demons.skill": true, diff --git a/res/e3a/races.xml b/res/e3a/races.xml index 3402fdb73..4fcc76e4f 100644 --- a/res/e3a/races.xml +++ b/res/e3a/races.xml @@ -127,7 +127,6 @@ - diff --git a/src/kernel/unit.c b/src/kernel/unit.c index 329a523c6..27a296a15 100644 --- a/src/kernel/unit.c +++ b/src/kernel/unit.c @@ -2060,9 +2060,10 @@ double u_heal_factor(const unit * u) rc_elf = get_race(RC_ELF); } if (rc == rc_elf) { - double elf_regen = 1.0; - if (rc->parameters) { - elf_regen = get_param_flt(rc->parameters, "regen.forest", elf_regen); + static int cache; + static double elf_regen; + if (config_changed(&cache)) { + elf_regen = config_get_flt("healing.forest", 1.0); } return elf_regen; } diff --git a/src/kernel/unit.test.c b/src/kernel/unit.test.c index bf4e9a389..1ddf6282e 100644 --- a/src/kernel/unit.test.c +++ b/src/kernel/unit.test.c @@ -505,7 +505,7 @@ static void test_heal_factor(CuTest *tc) { CuAssertPtrEquals(tc, (void *)rc, (void *)get_race(RC_ELF)); u_setrace(u, get_race(RC_ELF)); CuAssertDblEquals(tc, 1.0, u_heal_factor(u), 0.0); - set_param(&rc->parameters, "regen.forest", "1.5"); + config_set("healing.forest", "1.5"); CuAssertDblEquals(tc, 1.5, u_heal_factor(u), 0.0); test_cleanup(); }