diff options
author | Bardur Arantsson <bardur@scientician.net> | 2014-12-18 21:31:32 +0100 |
---|---|---|
committer | Bardur Arantsson <bardur@scientician.net> | 2014-12-23 12:07:54 +0100 |
commit | ddebc7f4803cc967427db1fdb7c2196afc114c14 (patch) | |
tree | b16d5ffeff7b83f25d5f6944d0c10fd41af736fe | |
parent | 9a10050acb1c6398eedfe9c20611ac31f17802d5 (diff) |
Update HOOK_CHAT to new-style hook
-rw-r--r-- | src/cmd2.cc | 3 | ||||
-rw-r--r-- | src/q_hobbit.cc | 11 | ||||
-rw-r--r-- | src/q_shroom.cc | 21 | ||||
-rw-r--r-- | src/types.h | 5 |
4 files changed, 22 insertions, 18 deletions
diff --git a/src/cmd2.cc b/src/cmd2.cc index e0a1bb08..2c42514d 100644 --- a/src/cmd2.cc +++ b/src/cmd2.cc @@ -5154,7 +5154,8 @@ void do_cmd_chat() } /* Process hook if there are any */ - if (!process_hooks(HOOK_CHAT, "(d)", c_ptr->m_idx)) + struct hook_chat_in in = { c_ptr->m_idx }; + if (!process_hooks_new(HOOK_CHAT, &in, NULL)) { msg_print("The monster does not want to chat."); } diff --git a/src/q_hobbit.cc b/src/q_hobbit.cc index 34b78808..2d9f5727 100644 --- a/src/q_hobbit.cc +++ b/src/q_hobbit.cc @@ -109,12 +109,11 @@ static bool_ quest_hobbit_speak_hook(void *, void *in_, void *) return (TRUE); } -static bool_ quest_hobbit_chat_hook(const char *fmt) +static bool_ quest_hobbit_chat_hook(void *, void *in_, void *) { + struct hook_chat_in *in = static_cast<struct hook_chat_in *>(in_); + s32b m_idx = in->m_idx; monster_type *m_ptr; - s32b m_idx; - - m_idx = get_next_arg(fmt); m_ptr = &m_list[m_idx]; @@ -189,14 +188,14 @@ bool_ quest_hobbit_init_hook(int q_idx) add_hook_new(HOOK_GIVE, quest_hobbit_give_hook, "hobbit_give", NULL); add_hook (HOOK_GEN_LEVEL, quest_hobbit_gen_hook, "hobbit_gen"); add_hook (HOOK_WILD_GEN, quest_hobbit_town_gen_hook, "hobbit_town_gen"); - add_hook (HOOK_CHAT, quest_hobbit_chat_hook, "hobbit_chat"); + add_hook_new(HOOK_CHAT, quest_hobbit_chat_hook, "hobbit_chat", NULL); add_hook_new(HOOK_MON_SPEAK, quest_hobbit_speak_hook, "hobbit_speak", NULL); } if (cquest.status == QUEST_STATUS_UNTAKEN) { add_hook_new(HOOK_MON_SPEAK, quest_hobbit_speak_hook, "hobbit_speak", NULL); add_hook (HOOK_WILD_GEN, quest_hobbit_town_gen_hook, "hobbit_town_gen"); - add_hook (HOOK_CHAT, quest_hobbit_chat_hook, "hobbit_chat"); + add_hook_new(HOOK_CHAT, quest_hobbit_chat_hook, "hobbit_chat", NULL); } add_hook(HOOK_CHAR_DUMP, quest_hobbit_dump_hook, "hobbit_dump"); return (FALSE); diff --git a/src/q_shroom.cc b/src/q_shroom.cc index ed439fd3..3d476324 100644 --- a/src/q_shroom.cc +++ b/src/q_shroom.cc @@ -4,7 +4,8 @@ #define cquest (quest[QUEST_SHROOM]) -static bool_ quest_shroom_speak_hook(void *, void *in_, void *); +static bool_ quest_shroom_speak_hook(void *, void *, void *); +static bool_ quest_shroom_chat_hook(void *, void *, void *); static bool_ quest_shroom_town_gen_hook(const char *fmt) { @@ -201,7 +202,8 @@ static void check_dogs_alive(s32b m_idx) delete_monster_idx(m_idx); del_hook_new(HOOK_GIVE, quest_shroom_give_hook); - del_hook_new(HOOK_CHAT, quest_shroom_speak_hook); + del_hook_new(HOOK_MON_SPEAK, quest_shroom_speak_hook); + del_hook_new(HOOK_CHAT, quest_shroom_chat_hook); del_hook (HOOK_WILD_GEN, quest_shroom_town_gen_hook); process_hooks_restart = TRUE; } @@ -230,14 +232,11 @@ static bool_ quest_shroom_speak_hook(void *, void *in_, void *) return (TRUE); } -static bool_ quest_shroom_chat_hook(const char *fmt) +static bool_ quest_shroom_chat_hook(void *, void *in_, void *) { - monster_type *m_ptr; - s32b m_idx; - - m_idx = get_next_arg(fmt); - - m_ptr = &m_list[m_idx]; + struct hook_chat_in *in = static_cast<struct hook_chat_in *>(in_); + s32b m_idx = in->m_idx; + monster_type *m_ptr = &m_list[m_idx]; if (m_ptr->r_idx != test_monster_name("Farmer Maggot")) return (FALSE); @@ -278,14 +277,14 @@ bool_ quest_shroom_init_hook(int q_idx) add_hook (HOOK_MONSTER_DEATH, quest_shroom_death_hook, "shroom_death"); add_hook_new(HOOK_GIVE, quest_shroom_give_hook, "shroom_give", NULL); add_hook (HOOK_WILD_GEN, quest_shroom_town_gen_hook, "shroom_town_gen"); - add_hook (HOOK_CHAT, quest_shroom_chat_hook, "shroom_chat"); + add_hook_new(HOOK_CHAT, quest_shroom_chat_hook, "shroom_chat", NULL); add_hook_new(HOOK_MON_SPEAK, quest_shroom_speak_hook, "shroom_speak", NULL); } if (cquest.status == QUEST_STATUS_UNTAKEN) { add_hook_new(HOOK_MON_SPEAK, quest_shroom_speak_hook, "shroom_speak", NULL); add_hook (HOOK_WILD_GEN, quest_shroom_town_gen_hook, "shroom_town_gen"); - add_hook (HOOK_CHAT, quest_shroom_chat_hook, "shroom_chat"); + add_hook_new(HOOK_CHAT, quest_shroom_chat_hook, "shroom_chat", NULL); } return (FALSE); } diff --git a/src/types.h b/src/types.h index 6ac84fc2..71db3da1 100644 --- a/src/types.h +++ b/src/types.h @@ -2222,6 +2222,11 @@ struct hook_mon_speak_in { cptr m_name; }; +typedef struct hook_chat_in hook_chat_in; +struct hook_chat_in { + s32b m_idx; +}; + typedef struct hook_eat_in hook_eat_in; struct hook_eat_in { object_type *o_ptr; |