summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2014-12-18 23:56:35 +0100
committerBardur Arantsson <bardur@scientician.net>2014-12-23 12:07:54 +0100
commitd0abfa2e636e139d25b178457b8dc7f5b007104d (patch)
treeaab638bc0f2c3a03c08ecb890ab8ae67e0584e63
parent752611806d109d182227c22354bd380899ba5d67 (diff)
Update HOOK_INIT_QUEST to new-style hook
-rw-r--r--src/bldg.cc6
-rw-r--r--src/q_betwen.cc10
-rw-r--r--src/q_nazgul.cc8
-rw-r--r--src/q_poison.cc11
-rw-r--r--src/types.h5
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;