summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2015-02-23 09:11:55 +0100
committerBardur Arantsson <bardur@scientician.net>2015-02-23 09:11:55 +0100
commita53ffb9d26322296b64f23fe0ae72a245802a9b0 (patch)
treedfedb82c898f7f6ee18ee9842614366d0820182c
parent5db9e06833d5a98ab3e9fefc2eb2de6680d4c59b (diff)
Change get_level_school() to use direct spell_type pointer instead of index
-rw-r--r--src/cmd5.cc2
-rw-r--r--src/externs.h2
-rw-r--r--src/lua_bind.cc11
-rw-r--r--src/spells4.cc2
-rw-r--r--src/spells6.cc4
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);