From ca63c6bf6fa6d72b93b53cc48d06cc69b3bebe9e Mon Sep 17 00:00:00 2001 From: Bardur Arantsson Date: Sat, 9 Jun 2012 19:26:34 +0200 Subject: Lua: Move "Geomancy" ability to C --- lib/mods/theme/scpt/mkeys.lua | 28 ---------------------------- lib/scpt/mkeys.lua | 28 ---------------------------- src/defines.h | 1 + src/skills.c | 28 ++++++++++++++++++++++++++++ 4 files changed, 29 insertions(+), 56 deletions(-) diff --git a/lib/mods/theme/scpt/mkeys.lua b/lib/mods/theme/scpt/mkeys.lua index 8bdc83bc..82fe4ede 100644 --- a/lib/mods/theme/scpt/mkeys.lua +++ b/lib/mods/theme/scpt/mkeys.lua @@ -1,33 +1,5 @@ -- Mkeys for skills & abilities --- Geomancy skill -add_mkey -{ - ["mkey"] = 101, - ["fct"] = function() - local s - - -- No magic - if (player.antimagic > 0) then - msg_print("Your anti-magic field disrupts any magic attempts.") - return - end - - local obj = get_object(INVEN_WIELD) - if (obj.k_idx <= 0) or (obj.tval ~= TV_MSTAFF) then - msg_print('You must wield a magestaff to use Geomancy.') - return - end - - s = get_school_spell("cast", 62); - - -- Actualy cast the choice - if (s ~= -1) then - cast_school_spell(s) - end - end, -} - -- Far reaching attack of polearms add_mkey { diff --git a/lib/scpt/mkeys.lua b/lib/scpt/mkeys.lua index 8bdc83bc..82fe4ede 100644 --- a/lib/scpt/mkeys.lua +++ b/lib/scpt/mkeys.lua @@ -1,33 +1,5 @@ -- Mkeys for skills & abilities --- Geomancy skill -add_mkey -{ - ["mkey"] = 101, - ["fct"] = function() - local s - - -- No magic - if (player.antimagic > 0) then - msg_print("Your anti-magic field disrupts any magic attempts.") - return - end - - local obj = get_object(INVEN_WIELD) - if (obj.k_idx <= 0) or (obj.tval ~= TV_MSTAFF) then - msg_print('You must wield a magestaff to use Geomancy.') - return - end - - s = get_school_spell("cast", 62); - - -- Actualy cast the choice - if (s ~= -1) then - cast_school_spell(s) - end - end, -} - -- Far reaching attack of polearms add_mkey { diff --git a/src/defines.h b/src/defines.h index fe689725..c1dafdf4 100644 --- a/src/defines.h +++ b/src/defines.h @@ -610,6 +610,7 @@ #define MKEY_COMPANION 22 #define MKEY_PIERCING 23 #define MKEY_DEATH_TOUCH 100 +#define MKEY_GEOMANCY 101 /*** Screen Locations ***/ diff --git a/src/skills.c b/src/skills.c index fd6c37a2..1dc65fea 100644 --- a/src/skills.c +++ b/src/skills.c @@ -1074,6 +1074,34 @@ void do_cmd_activate_skill() } break; } + case MKEY_GEOMANCY: + { + s32b s = -1; + object_type *o_ptr = NULL; + + /* No magic */ + if (p_ptr->antimagic > 0) + { + msg_print("Your anti-magic field disrupts any magic attempts."); + break; + } + + o_ptr = get_object(INVEN_WIELD); + if ((o_ptr->k_idx <= 0) || + (o_ptr->tval != TV_MSTAFF)) + { + msg_print("You must wield a magestaff to use Geomancy."); + break; + } + + s = get_school_spell("cast", BOOK_GEOMANCY); + if (s >= 0) + { + lua_cast_school_spell(s, FALSE); + } + + break; + } default: process_hooks(HOOK_MKEY, "(d)", x_idx); break; -- cgit v1.2.3