From 83d2d89462f4b03419019e23d73665f0472b687b Mon Sep 17 00:00:00 2001 From: Bardur Arantsson Date: Sat, 9 Jun 2012 21:55:59 +0200 Subject: Lua: Move "Smeagol takes RoI" code to C --- lib/mods/theme/scpt/misc.lua | 21 --------------------- src/modules.c | 26 ++++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/lib/mods/theme/scpt/misc.lua b/lib/mods/theme/scpt/misc.lua index 3658b528..9a3c37bb 100644 --- a/lib/mods/theme/scpt/misc.lua +++ b/lib/mods/theme/scpt/misc.lua @@ -22,27 +22,6 @@ function longbottom_leaf(object) end add_hook_script(HOOK_EAT, "longbottom_leaf", "longbottom_leaf") --- Smeagol likes rings -function smeagol_ring(m_idx, item) - - m_ptr = monster(m_idx) - o_ptr = get_object(item) - - if (m_ptr.r_idx == test_monster_name("Smeagol")) - and (o_ptr.tval == TV_RING) then - - cmsg_print(TERM_YELLOW, "'MY... PRECIOUSSSSS!!!'") - - inven_item_increase(item, -1) - inven_item_optimize(item) - return TRUE - else - return FALSE - end -end - -add_hook_script(HOOK_GIVE, "smeagol_ring", "smeagol_ring") - -- functions to check for Map and Key of Thror before proceeding in Erebor -- Thank you, Massimiliano Marangio :-) add_hooks diff --git a/src/modules.c b/src/modules.c index 6b476fd2..552bc876 100644 --- a/src/modules.c +++ b/src/modules.c @@ -564,6 +564,27 @@ static bool_ hobbit_food(void *data, void *in_, void *out) } } +static bool_ smeagol_ring(void *data, void *in_, void *out) +{ + hook_give_in *in = (hook_give_in *) in_; + monster_type *m_ptr = &m_list[in->m_idx]; + object_type *o_ptr = get_object(in->item); + + if ((m_ptr->r_idx == test_monster_name("Smeagol")) && + (o_ptr->tval == TV_RING)) + { + cmsg_print(TERM_YELLOW, "'MY... PRECIOUSSSSS!!!'"); + + inc_stack_size_ex(in->item, -1, OPTIMIZE, NO_DESCRIBE); + + return TRUE; + } + else + { + return FALSE; + } +} + void init_hooks_module() { /* @@ -596,6 +617,11 @@ void init_hooks_module() "hobbit_food", NULL); + add_hook_new(HOOK_GIVE, + smeagol_ring, + "smeagol_ring", + NULL); + break; } -- cgit v1.2.3