diff --git a/src/battle.c b/src/battle.c index d35110b4e..6e642ff00 100644 --- a/src/battle.c +++ b/src/battle.c @@ -128,8 +128,8 @@ const troop no_troop = { 0, 0 }; #define DAMAGE_SKILL_BONUS (1<<4) static int max_turns; -static int damage_rules; -static int loot_rules; +static int rule_damage; +static int rule_loot; static int skill_formula; static int rule_cavalry_skill; static int rule_population_damage; @@ -157,7 +157,7 @@ static void init_rules(void) rule_anon_battle = config_get_int("rules.stealth.anon_battle", 1) != 0; rule_cavalry_mode = config_get_int("rules.cavalry.mode", 1); rule_cavalry_skill = config_get_int("rules.cavalry.skill", 2); - loot_rules = config_get_int("rules.combat.loot", + rule_loot = config_get_int("rules.combat.loot", LOOT_MONSTERS | LOOT_OTHERS | LOOT_KEEPLOOT); /* new formula to calculate to-hit-chance */ skill_formula = config_get_int("rules.combat.skill_formula", @@ -166,16 +166,16 @@ static void init_rules(void) max_turns = config_get_int("rules.combat.turns", COMBAT_TURNS); /* damage calculation */ if (config_get_int("rules.combat.critical", 1)) { - damage_rules |= DAMAGE_CRITICAL; + rule_damage |= DAMAGE_CRITICAL; } if (config_get_int("rules.combat.melee_bonus", 1)) { - damage_rules |= DAMAGE_MELEE_BONUS; + rule_damage |= DAMAGE_MELEE_BONUS; } if (config_get_int("rules.combat.missile_bonus", 1)) { - damage_rules |= DAMAGE_MISSILE_BONUS; + rule_damage |= DAMAGE_MISSILE_BONUS; } if (config_get_int("rules.combat.skill_bonus", 1)) { - damage_rules |= DAMAGE_SKILL_BONUS; + rule_damage |= DAMAGE_SKILL_BONUS; } } @@ -1222,7 +1222,7 @@ terminate(troop dt, troop at, int type, const char *damage, bool missile) } if (type != AT_COMBATSPELL && type != AT_SPELL) { - if (damage_rules & DAMAGE_CRITICAL) { + if (rule_damage & DAMAGE_CRITICAL) { double kritchance = (sk * 3 - sd) / 200.0; kritchance = _max(kritchance, 0.005); @@ -1240,19 +1240,19 @@ terminate(troop dt, troop at, int type, const char *damage, bool missile) if (awtype != NULL && fval(awtype, WTF_MISSILE)) { /* missile weapon bonus */ - if (damage_rules & DAMAGE_MISSILE_BONUS) { + if (rule_damage & DAMAGE_MISSILE_BONUS) { da += af->person[at.index].damage_rear; } } else { /* melee bonus */ - if (damage_rules & DAMAGE_MELEE_BONUS) { + if (rule_damage & DAMAGE_MELEE_BONUS) { da += af->person[at.index].damage; } } /* Skilldifferenzbonus */ - if (damage_rules & DAMAGE_SKILL_BONUS) { + if (rule_damage & DAMAGE_SKILL_BONUS) { da += _max(0, (sk - sd) / DAMAGE_QUOTIENT); } } @@ -2577,20 +2577,20 @@ static void loot_items(fighter * corpse) itm->number -= loot; maxloot -= loot; - if (is_monsters(u->faction) && (loot_rules & LOOT_MONSTERS)) { + if (is_monsters(u->faction) && (rule_loot & LOOT_MONSTERS)) { looting = 1; } - else if (loot_rules & LOOT_OTHERS) { + else if (rule_loot & LOOT_OTHERS) { looting = 1; } - else if (loot_rules & LOOT_SELF) { + else if (rule_loot & LOOT_SELF) { looting = 2; } if (looting) { if (mustloot) { maxrow = LAST_ROW; } - else if (loot_rules & LOOT_KEEPLOOT) { + else if (rule_loot & LOOT_KEEPLOOT) { int lootchance = 50 + b->keeploot; if (rng_int() % 100 < lootchance) { maxrow = BEHIND_ROW; diff --git a/src/kernel/config.c b/src/kernel/config.c index 8d90098f5..aa67d3fb0 100644 --- a/src/kernel/config.c +++ b/src/kernel/config.c @@ -213,12 +213,6 @@ int LongHunger(const struct unit *u) return config_get_int("hunger.long", 0); } -int SkillCap(skill_t sk) -{ - if (sk == SK_MAGIC) return 0; /* no caps on magic */ - return config_get_int("skill.maxlevel", 0); -} - int NMRTimeout(void) { return config_get_int("nmr.timeout", 0); diff --git a/src/kernel/unit.c b/src/kernel/unit.c index 14e064b05..bc403909c 100644 --- a/src/kernel/unit.c +++ b/src/kernel/unit.c @@ -1323,7 +1323,6 @@ int get_modifier(const unit * u, skill_t sk, int level, const region * r, bool n { int bskill = level; int skill = bskill; - int hunger_red_skill = -1; if (r && sk == SK_STEALTH) { plane *pl = rplane(r); @@ -1342,12 +1341,8 @@ int get_modifier(const unit * u, skill_t sk, int level, const region * r, bool n #endif skill = skillmod(u->attribs, u, r, sk, skill, SMF_ALWAYS); - if (hunger_red_skill == -1) { - hunger_red_skill = config_get_int("rules.hunger.reduces_skill", 2); - } - - if (fval(u, UFL_HUNGER) && hunger_red_skill) { - if (sk == SK_SAILING && skill > 2 && hunger_red_skill == 2) { + if (fval(u, UFL_HUNGER)) { + if (sk == SK_SAILING && skill > 2) { skill = skill - 1; } else { @@ -1365,10 +1360,6 @@ int eff_skill(const unit * u, const skill *sv, const region *r) int mlevel = sv->level + get_modifier(u, sv->id, sv->level, r, false); if (mlevel > 0) { - int skillcap = SkillCap(sv->id); - if (skillcap>0 && mlevel > skillcap) { - return skillcap; - } return mlevel; } } diff --git a/src/kernel/unit.test.c b/src/kernel/unit.test.c index 4486d344a..6e2b584cc 100644 --- a/src/kernel/unit.test.c +++ b/src/kernel/unit.test.c @@ -283,16 +283,6 @@ static void test_skill_hunger(CuTest *tc) { set_level(u, SK_ARMORER, 6); set_level(u, SK_SAILING, 6); fset(u, UFL_HUNGER); - - config_set("rules.hunger.reduces_skill", "0"); - CuAssertIntEquals(tc, 6, effskill(u, SK_ARMORER, 0)); - CuAssertIntEquals(tc, 6, effskill(u, SK_SAILING, 0)); - - config_set("rules.hunger.reduces_skill", "1"); - CuAssertIntEquals(tc, 3, effskill(u, SK_ARMORER, 0)); - CuAssertIntEquals(tc, 3, effskill(u, SK_SAILING, 0)); - - config_set("rules.hunger.reduces_skill", "2"); CuAssertIntEquals(tc, 3, effskill(u, SK_ARMORER, 0)); CuAssertIntEquals(tc, 5, effskill(u, SK_SAILING, 0)); set_level(u, SK_SAILING, 2); diff --git a/src/study.c b/src/study.c index db722fff8..9d3edddb1 100644 --- a/src/study.c +++ b/src/study.c @@ -535,7 +535,7 @@ static double study_speedup(unit * u, skill_t s, study_rule_t rule) int study_cmd(unit * u, order * ord) { region *r = u->region; - int p, cap; + int p; magic_t mtyp; int l; int studycost, days; @@ -563,11 +563,6 @@ int study_cmd(unit * u, order * ord) cmistake(u, ord, 77, MSG_EVENT); return 0; } - cap = SkillCap(sk); - if (cap > 0 && cap <= effskill(u, sk, 0)) { - cmistake(u, ord, 771, MSG_EVENT); - return 0; - } /* Hack: Talente mit Malus -99 koennen nicht gelernt werden */ if (u_race(u)->bonus[sk] == -99) { cmistake(u, ord, 771, MSG_EVENT);