summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2012-06-09 19:26:34 +0200
committerBardur Arantsson <bardur@scientician.net>2012-06-09 19:47:35 +0200
commitca63c6bf6fa6d72b93b53cc48d06cc69b3bebe9e (patch)
tree6df959264f31196bfb9a74cad3f5f8ddcd511a82
parent24778733a4fd919a7646750ebb0211dca689b245 (diff)
Lua: Move "Geomancy" ability to C
-rw-r--r--lib/mods/theme/scpt/mkeys.lua28
-rw-r--r--lib/scpt/mkeys.lua28
-rw-r--r--src/defines.h1
-rw-r--r--src/skills.c28
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;