diff options
author | Bardur Arantsson <bardur@scientician.net> | 2015-02-23 09:11:55 +0100 |
---|---|---|
committer | Bardur Arantsson <bardur@scientician.net> | 2015-02-23 09:11:55 +0100 |
commit | a53ffb9d26322296b64f23fe0ae72a245802a9b0 (patch) | |
tree | dfedb82c898f7f6ee18ee9842614366d0820182c | |
parent | 5db9e06833d5a98ab3e9fefc2eb2de6680d4c59b (diff) |
Change get_level_school() to use direct spell_type pointer instead of index
-rw-r--r-- | src/cmd5.cc | 2 | ||||
-rw-r--r-- | src/externs.h | 2 | ||||
-rw-r--r-- | src/lua_bind.cc | 11 | ||||
-rw-r--r-- | src/spells4.cc | 2 | ||||
-rw-r--r-- | src/spells6.cc | 4 |
5 files changed, 10 insertions, 11 deletions
diff --git a/src/cmd5.cc b/src/cmd5.cc index 60c51a1d..f0c83133 100644 --- a/src/cmd5.cc +++ b/src/cmd5.cc @@ -2133,7 +2133,7 @@ bool_ is_ok_spell(s32b spell_idx, object_type *o_ptr) // Calculate availability based on caster's skill level. s32b level; bool_ na; - get_level_school(spell_idx, 50, 0, &level, &na); + get_level_school(spell, 50, 0, &level, &na); if (na || (level == 0)) { return FALSE; diff --git a/src/externs.h b/src/externs.h index 1101fee5..a2d7baa1 100644 --- a/src/externs.h +++ b/src/externs.h @@ -2212,7 +2212,7 @@ extern int get_mana(s32b s); extern s32b get_power(s32b s); extern s32b spell_chance(s32b s); extern s32b get_level(s32b s, s32b max, s32b min); -extern void get_level_school(s32b s, s32b max, s32b min, s32b *level, bool_ *na); +extern void get_level_school(spell_type *spell, s32b max, s32b min, s32b *level, bool_ *na); extern s32b get_level_max_stick; extern s32b get_level_use_stick; diff --git a/src/lua_bind.cc b/src/lua_bind.cc index 046883a8..78a86d13 100644 --- a/src/lua_bind.cc +++ b/src/lua_bind.cc @@ -85,12 +85,12 @@ static s32b get_level_device_1(s32b s, s32b max, s32b min) return get_level_device(spell, max, min); } -static s32b get_level_school_1(s32b s, s32b max, s32b min) +static s32b get_level_school_1(spell_type *spell, s32b max, s32b min) { // Delegate s32b level; bool_ na; - get_level_school(s, max, min, &level, &na); + get_level_school(spell, max, min, &level, &na); // Note: It is tempting to add an assertion here for "na == FALSE" here, // but there are cases where we haven't actually checked if the spell is // really castable before calling this function (indirectly). Thus we @@ -107,7 +107,7 @@ int get_mana(s32b s) range_type mana_range; spell_type_mana_range(spell, &mana_range); // Scale - return get_level_school_1(s, mana_range.max, mana_range.min); + return get_level_school_1(spell, mana_range.max, mana_range.min); } /** Returns spell change of failure for spell cast from a device */ @@ -132,7 +132,7 @@ static s32b spell_chance_device(s32b s) static s32b spell_chance_school(s32b s) { spell_type *s_ptr = spell_at(s); - int level = get_level_school_1(s, 50, 1); + int level = get_level_school_1(s_ptr, 50, 1); s32b chance = spell_type_failure_rate(s_ptr); int mana = get_mana(s); int cur_mana = get_power(s); @@ -189,7 +189,8 @@ s32b get_level(s32b s, s32b max, s32b min) if (get_level_use_stick > -1) { return get_level_device_1(s, max, min); } else { - return get_level_school_1(s, max, min); + auto spell = spell_at(s); + return get_level_school_1(spell, max, min); } } diff --git a/src/spells4.cc b/src/spells4.cc index 0e97c0f0..31811449 100644 --- a/src/spells4.cc +++ b/src/spells4.cc @@ -431,7 +431,7 @@ int print_spell(cptr label_, byte color, int y, s32b s) char level_str[8] = "n/a"; char buf[128]; - get_level_school(s, 50, -50, &level, &na); + get_level_school(spell, 50, -50, &level, &na); spell_school_name(sch_str, spell); if (!na) diff --git a/src/spells6.cc b/src/spells6.cc index dd3e1d8b..27e3925f 100644 --- a/src/spells6.cc +++ b/src/spells6.cc @@ -229,10 +229,8 @@ static bool_ get_level_school_callback(void *data_, int school_idx) return TRUE; } -void get_level_school(s32b spell_idx, s32b max, s32b min, s32b *level, bool_ *na) +void get_level_school(spell_type *spell, s32b max, s32b min, s32b *level, bool_ *na) { - spell_type *spell = spell_at(spell_idx); - assert(level != NULL); assert(na != NULL); |