diff options
author | Bardur Arantsson <bardur@scientician.net> | 2014-12-19 01:21:46 +0100 |
---|---|---|
committer | Bardur Arantsson <bardur@scientician.net> | 2014-12-23 12:07:54 +0100 |
commit | e6c73d8eb175fe69a6a8d341cbbc35b8873e1ed9 (patch) | |
tree | e46e64fda1fff187d10c79f057842ca6fb1eb537 | |
parent | aab1ab37bcc0f02a57c1559ff02bd7f4d8d42fca (diff) |
Update HOOK_WIELD to new-style hook
-rw-r--r-- | src/cmd3.cc | 8 | ||||
-rw-r--r-- | src/q_one.cc | 11 | ||||
-rw-r--r-- | src/types.h | 5 |
3 files changed, 16 insertions, 8 deletions
diff --git a/src/cmd3.cc b/src/cmd3.cc index 5bb70054..059fecf7 100644 --- a/src/cmd3.cc +++ b/src/cmd3.cc @@ -260,7 +260,13 @@ void do_cmd_wield(void) } /* Can we wield */ - if (process_hooks(HOOK_WIELD, "(d)", item)) return; + { + struct hook_wield_in in = { o_ptr }; + if (process_hooks_new(HOOK_WIELD, &in, NULL)) + { + return; + } + } /* Extract the flags */ object_flags(o_ptr, &f1, &f2, &f3, &f4, &f5, &esp); diff --git a/src/q_one.cc b/src/q_one.cc index b869c429..3412de56 100644 --- a/src/q_one.cc +++ b/src/q_one.cc @@ -96,13 +96,10 @@ static bool_ quest_one_drop_hook(void *, void *in_, void *) return TRUE; } -static bool_ quest_one_wield_hook(const char *fmt) +static bool_ quest_one_wield_hook(void *, void *in_, void *) { - s32b o_idx; - object_type *o_ptr; - - o_idx = get_next_arg(fmt); - o_ptr = &p_ptr->inventory[o_idx]; + struct hook_wield_in *in = static_cast<struct hook_wield_in *>(in_); + object_type *o_ptr = in->o_ptr; if (cquest.status != QUEST_STATUS_TAKEN) return FALSE; @@ -344,7 +341,7 @@ bool_ quest_one_init_hook(int q_idx) add_hook (HOOK_LEVEL_END_GEN, quest_one_gen_hook, "one_gen"); add_hook_new(HOOK_MONSTER_DEATH, quest_one_death_hook, "one_death", NULL); add_hook_new(HOOK_DROP, quest_one_drop_hook, "one_drop", NULL); - add_hook (HOOK_WIELD, quest_one_wield_hook, "one_wield"); + add_hook_new(HOOK_WIELD, quest_one_wield_hook, "one_wield", NULL); add_hook_new(HOOK_IDENTIFY, quest_one_identify_hook, "one_id", NULL); } if (cquest.status == QUEST_STATUS_UNTAKEN) diff --git a/src/types.h b/src/types.h index da0e2b5a..f82ef006 100644 --- a/src/types.h +++ b/src/types.h @@ -2242,6 +2242,11 @@ struct hook_chardump_in { FILE *file; }; +typedef struct hook_wield_in hook_wield_in; +struct hook_wield_in { + object_type *o_ptr; +}; + typedef struct hook_drop_in hook_drop_in; struct hook_drop_in { int o_idx; |