diff options
author | Bardur Arantsson <bardur@scientician.net> | 2012-05-17 08:16:07 +0200 |
---|---|---|
committer | Bardur Arantsson <bardur@scientician.net> | 2012-05-18 11:47:20 +0200 |
commit | ccb4ffd3033ac953c064b590709e0a88ff659003 (patch) | |
tree | 03590d0b1765bd39fb3c7aaa7c7daf54811332c6 /src | |
parent | 0582181c200ef17189b6e1c3161f50860b8b1fab (diff) |
Lua: Rework get_level_school() callout
Diffstat (limited to 'src')
-rw-r--r-- | src/externs.h | 1 | ||||
-rw-r--r-- | src/lua_bind.c | 16 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/externs.h b/src/externs.h index 0b7b2575..564c0b2b 100644 --- a/src/externs.h +++ b/src/externs.h @@ -2307,6 +2307,7 @@ extern s32b get_level_device(s32b s, s32b max, s32b min); extern int get_mana(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 s32b lua_spell_chance(s32b chance, int level, int skill_level, int mana, int cur_mana, int stat); extern s32b lua_spell_device_chance(s32b chance, int level, int base_level); diff --git a/src/lua_bind.c b/src/lua_bind.c index 409e005d..a019004b 100644 --- a/src/lua_bind.c +++ b/src/lua_bind.c @@ -271,13 +271,27 @@ s32b spell_chance(s32b s) } } +void get_level_school(s32b s, s32b max, s32b min, s32b *level, bool_ *na) +{ + if (level != NULL) + { + *level = exec_lua(format("local lvl, na = get_level_school(%d, %d, %d); return lvl", s, max, min)); + } + + if (na != NULL) + { + *na = exec_lua(format("local lvl, na = get_level_school(%d, %d, %d); return (na == \"n/a\")", s, max, min)); + } +} + s32b get_level(s32b s, s32b max, s32b min) { /** Ahah shall we use Magic device instead ? */ if (get_level_use_stick > -1) { return get_level_device(s, max, min); } else { - int level = exec_lua(format("local lvl, na = get_level_school(%d, %d, %d); return lvl", s, max, min)); + s32b level; + get_level_school(s, max, min, &level, NULL); return level; } } |