diff options
-rw-r--r-- | src/bldg.cc | 6 | ||||
-rw-r--r-- | src/q_betwen.cc | 10 | ||||
-rw-r--r-- | src/q_nazgul.cc | 8 | ||||
-rw-r--r-- | src/q_poison.cc | 11 | ||||
-rw-r--r-- | src/types.h | 5 |
5 files changed, 24 insertions, 16 deletions
diff --git a/src/bldg.cc b/src/bldg.cc index 17899fc9..d048498c 100644 --- a/src/bldg.cc +++ b/src/bldg.cc @@ -865,7 +865,11 @@ static bool_ castle_quest(int y, int x) /* No quest yet */ else if (q_ptr->status == QUEST_STATUS_UNTAKEN) { - if (process_hooks(HOOK_INIT_QUEST, "(d)", plots[plot])) return (FALSE); + struct hook_init_quest_in in = { plots[plot] }; + if (process_hooks_new(HOOK_INIT_QUEST, &in, NULL)) + { + return (FALSE); + } q_ptr->status = QUEST_STATUS_TAKEN; diff --git a/src/q_betwen.cc b/src/q_betwen.cc index d1d0e8df..5cbf91e6 100644 --- a/src/q_betwen.cc +++ b/src/q_betwen.cc @@ -168,10 +168,10 @@ static bool_ quest_between_dump_hook(void *, void *in_, void *) return (FALSE); } -static bool_ quest_between_forbid_hook(const char *fmt) +static bool_ quest_between_forbid_hook(void *, void *in_, void *) { - s32b q_idx; - q_idx = get_next_arg(fmt); + hook_init_quest_in *in = static_cast<struct hook_init_quest_in *>(in_); + s32b q_idx = in->q_idx; if (q_idx != QUEST_BETWEEN) return (FALSE); @@ -192,7 +192,7 @@ bool_ quest_between_init_hook(int q) add_hook (HOOK_QUEST_FINISH, quest_between_finish_hook, "between_finish"); add_hook (HOOK_MONSTER_DEATH, quest_between_death_hook, "between_death"); } - add_hook_new(HOOK_CHAR_DUMP, quest_between_dump_hook, "between_dump", NULL); - add_hook (HOOK_INIT_QUEST, quest_between_forbid_hook, "between_forbid"); + add_hook_new(HOOK_CHAR_DUMP, quest_between_dump_hook, "between_dump", NULL); + add_hook_new(HOOK_INIT_QUEST, quest_between_forbid_hook, "between_forbid", NULL); return (FALSE); } diff --git a/src/q_nazgul.cc b/src/q_nazgul.cc index ccea9560..b60be463 100644 --- a/src/q_nazgul.cc +++ b/src/q_nazgul.cc @@ -78,10 +78,10 @@ static bool_ quest_nazgul_dump_hook(void *, void *in_, void *) return (FALSE); } -static bool_ quest_nazgul_forbid_hook(const char *fmt) +static bool_ quest_nazgul_forbid_hook(void *, void *in_, void *) { - s32b q_idx; - q_idx = get_next_arg(fmt); + struct hook_init_quest_in *in = static_cast<struct hook_init_quest_in *>(in_); + s32b q_idx = in->q_idx; if (q_idx != QUEST_NAZGUL) return (FALSE); @@ -120,6 +120,6 @@ bool_ quest_nazgul_init_hook(int q_idx) add_hook (HOOK_QUEST_FINISH, quest_nazgul_finish_hook, "nazgul_finish"); } add_hook_new(HOOK_CHAR_DUMP, quest_nazgul_dump_hook, "nazgul_dump", NULL); - add_hook (HOOK_INIT_QUEST, quest_nazgul_forbid_hook, "nazgul_forbid"); + add_hook_new(HOOK_INIT_QUEST, quest_nazgul_forbid_hook, "nazgul_forbid", NULL); return (FALSE); } diff --git a/src/q_poison.cc b/src/q_poison.cc index 400f8dde..47868a9e 100644 --- a/src/q_poison.cc +++ b/src/q_poison.cc @@ -147,12 +147,11 @@ static bool_ quest_poison_dump_hook(void *, void *in_, void *) return (FALSE); } -static bool_ quest_poison_quest_hook(const char *fmt) +static bool_ quest_poison_quest_hook(void *, void *in_, void *) { + struct hook_init_quest_in *in = static_cast<struct hook_init_quest_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_POISON) return FALSE; @@ -165,7 +164,7 @@ static bool_ quest_poison_quest_hook(const char *fmt) q_ptr->note = quark_add("quest"); (void)inven_carry(q_ptr, FALSE); - del_hook(HOOK_INIT_QUEST, quest_poison_quest_hook); + del_hook_new(HOOK_INIT_QUEST, quest_poison_quest_hook); process_hooks_restart = TRUE; return FALSE; @@ -242,7 +241,7 @@ bool_ quest_poison_init_hook(int q_idx) } if (cquest.status < QUEST_STATUS_COMPLETED) { - add_hook(HOOK_INIT_QUEST, quest_poison_quest_hook, "poison_iquest"); + add_hook_new(HOOK_INIT_QUEST, quest_poison_quest_hook, "poison_iquest", NULL); } add_hook_new(HOOK_CHAR_DUMP, quest_poison_dump_hook, "poison_dump", NULL); return (FALSE); diff --git a/src/types.h b/src/types.h index d3f1f599..e3b4a289 100644 --- a/src/types.h +++ b/src/types.h @@ -2264,6 +2264,11 @@ struct hook_stair_out { bool_ allow; }; +typedef struct hook_init_quest_in hook_init_quest_in; +struct hook_init_quest_in { + int q_idx; +}; + typedef struct hook_new_monster_in hook_new_monster_in; struct hook_new_monster_in { s32b r_idx; |