diff options
Diffstat (limited to 'src/q_eol.cc')
-rw-r--r-- | src/q_eol.cc | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/q_eol.cc b/src/q_eol.cc index a38135db..9286746d 100644 --- a/src/q_eol.cc +++ b/src/q_eol.cc @@ -84,12 +84,11 @@ static bool_ quest_eol_gen_hook(void *, void *, void *) return TRUE; } -static bool_ quest_eol_finish_hook(const char *fmt) +static bool_ quest_eol_finish_hook(void *, void *in_, void *) { + struct hook_quest_finish_in *in = static_cast<struct hook_quest_finish_in *>(in_); + s32b q_idx = in->q_idx; object_type forge, *q_ptr; - s32b q_idx; - - q_idx = get_next_arg(fmt); if (q_idx != QUEST_EOL) return FALSE; @@ -111,7 +110,7 @@ static bool_ quest_eol_finish_hook(const char *fmt) *(quest[q_idx].plot) = QUEST_NIRNAETH; quest[*(quest[q_idx].plot)].init(*(quest[q_idx].plot)); - del_hook(HOOK_QUEST_FINISH, quest_eol_finish_hook); + del_hook_new(HOOK_QUEST_FINISH, quest_eol_finish_hook); process_hooks_restart = TRUE; return TRUE; @@ -191,11 +190,11 @@ bool_ quest_eol_init_hook(int q) { if ((cquest.status >= QUEST_STATUS_TAKEN) && (cquest.status < QUEST_STATUS_FINISHED)) { - add_hook_new(HOOK_MONSTER_DEATH, quest_eol_death_hook, "eol_death", NULL); - add_hook_new(HOOK_GEN_QUEST, quest_eol_gen_hook, "eol_gen", NULL); - add_hook_new(HOOK_STAIR, quest_eol_stair_hook, "eol_stair", NULL); - add_hook_new(HOOK_QUEST_FAIL, quest_eol_fail_hook, "eol_fail", NULL); - add_hook (HOOK_QUEST_FINISH, quest_eol_finish_hook, "eol_finish"); + add_hook_new(HOOK_MONSTER_DEATH, quest_eol_death_hook, "eol_death", NULL); + add_hook_new(HOOK_GEN_QUEST, quest_eol_gen_hook, "eol_gen", NULL); + add_hook_new(HOOK_STAIR, quest_eol_stair_hook, "eol_stair", NULL); + add_hook_new(HOOK_QUEST_FAIL, quest_eol_fail_hook, "eol_fail", NULL); + add_hook_new(HOOK_QUEST_FINISH, quest_eol_finish_hook, "eol_finish", NULL); } return (FALSE); } |