summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/common/HPMDataCheck.h1
-rw-r--r--src/plugins/HPMHooking/HPMHooking.Defs.inc24
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc48
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc12
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.Hooks.inc322
5 files changed, 407 insertions, 0 deletions
diff --git a/src/common/HPMDataCheck.h b/src/common/HPMDataCheck.h
index 7d865c908..7f96954bc 100644
--- a/src/common/HPMDataCheck.h
+++ b/src/common/HPMDataCheck.h
@@ -541,6 +541,7 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
{ "mapflag_skill_adjust", sizeof(struct mapflag_skill_adjust), SERVER_TYPE_MAP },
{ "mapit_interface", sizeof(struct mapit_interface), SERVER_TYPE_MAP },
{ "questinfo", sizeof(struct questinfo), SERVER_TYPE_MAP },
+ { "questinfo_qreq", sizeof(struct questinfo_qreq), SERVER_TYPE_MAP },
{ "spawn_data", sizeof(struct spawn_data), SERVER_TYPE_MAP },
#else
#define MAP_MAP_H
diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc
index 31a7919bc..6b6c4d4e7 100644
--- a/src/plugins/HPMHooking/HPMHooking.Defs.inc
+++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc
@@ -6258,6 +6258,30 @@ typedef int (*HPMHOOK_pre_quest_read_db) (void);
typedef int (*HPMHOOK_post_quest_read_db) (int retVal___);
typedef struct quest_db* (*HPMHOOK_pre_quest_read_db_sub) (struct config_setting_t **cs, int *n, const char **source);
typedef struct quest_db* (*HPMHOOK_post_quest_read_db_sub) (struct quest_db* retVal___, struct config_setting_t *cs, int n, const char *source);
+typedef int (*HPMHOOK_pre_quest_questinfo_validate_icon) (int *icon);
+typedef int (*HPMHOOK_post_quest_questinfo_validate_icon) (int retVal___, int icon);
+typedef void (*HPMHOOK_pre_quest_questinfo_refresh) (struct map_session_data **sd);
+typedef void (*HPMHOOK_post_quest_questinfo_refresh) (struct map_session_data *sd);
+typedef bool (*HPMHOOK_pre_quest_questinfo_validate) (struct map_session_data **sd, struct questinfo **qi);
+typedef bool (*HPMHOOK_post_quest_questinfo_validate) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+typedef bool (*HPMHOOK_pre_quest_questinfo_validate_job) (struct map_session_data **sd, struct questinfo **qi);
+typedef bool (*HPMHOOK_post_quest_questinfo_validate_job) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+typedef bool (*HPMHOOK_pre_quest_questinfo_validate_sex) (struct map_session_data **sd, struct questinfo **qi);
+typedef bool (*HPMHOOK_post_quest_questinfo_validate_sex) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+typedef bool (*HPMHOOK_pre_quest_questinfo_validate_baselevel) (struct map_session_data **sd, struct questinfo **qi);
+typedef bool (*HPMHOOK_post_quest_questinfo_validate_baselevel) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+typedef bool (*HPMHOOK_pre_quest_questinfo_validate_joblevel) (struct map_session_data **sd, struct questinfo **qi);
+typedef bool (*HPMHOOK_post_quest_questinfo_validate_joblevel) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+typedef bool (*HPMHOOK_pre_quest_questinfo_validate_items) (struct map_session_data **sd, struct questinfo **qi);
+typedef bool (*HPMHOOK_post_quest_questinfo_validate_items) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+typedef bool (*HPMHOOK_pre_quest_questinfo_validate_homunculus_level) (struct map_session_data **sd, struct questinfo **qi);
+typedef bool (*HPMHOOK_post_quest_questinfo_validate_homunculus_level) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+typedef bool (*HPMHOOK_pre_quest_questinfo_validate_homunculus_type) (struct map_session_data **sd, struct questinfo **qi);
+typedef bool (*HPMHOOK_post_quest_questinfo_validate_homunculus_type) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+typedef bool (*HPMHOOK_pre_quest_questinfo_validate_quests) (struct map_session_data **sd, struct questinfo **qi);
+typedef bool (*HPMHOOK_post_quest_questinfo_validate_quests) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+typedef void (*HPMHOOK_pre_quest_questinfo_vector_clear) (int *m);
+typedef void (*HPMHOOK_post_quest_questinfo_vector_clear) (int m);
#endif // MAP_QUEST_H
#ifdef COMMON_RANDOM_H /* rnd */
typedef void (*HPMHOOK_pre_rnd_init) (void);
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
index 1a689494f..7d0e12e93 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
@@ -4814,6 +4814,30 @@ struct {
struct HPMHookPoint *HP_quest_read_db_post;
struct HPMHookPoint *HP_quest_read_db_sub_pre;
struct HPMHookPoint *HP_quest_read_db_sub_post;
+ struct HPMHookPoint *HP_quest_questinfo_validate_icon_pre;
+ struct HPMHookPoint *HP_quest_questinfo_validate_icon_post;
+ struct HPMHookPoint *HP_quest_questinfo_refresh_pre;
+ struct HPMHookPoint *HP_quest_questinfo_refresh_post;
+ struct HPMHookPoint *HP_quest_questinfo_validate_pre;
+ struct HPMHookPoint *HP_quest_questinfo_validate_post;
+ struct HPMHookPoint *HP_quest_questinfo_validate_job_pre;
+ struct HPMHookPoint *HP_quest_questinfo_validate_job_post;
+ struct HPMHookPoint *HP_quest_questinfo_validate_sex_pre;
+ struct HPMHookPoint *HP_quest_questinfo_validate_sex_post;
+ struct HPMHookPoint *HP_quest_questinfo_validate_baselevel_pre;
+ struct HPMHookPoint *HP_quest_questinfo_validate_baselevel_post;
+ struct HPMHookPoint *HP_quest_questinfo_validate_joblevel_pre;
+ struct HPMHookPoint *HP_quest_questinfo_validate_joblevel_post;
+ struct HPMHookPoint *HP_quest_questinfo_validate_items_pre;
+ struct HPMHookPoint *HP_quest_questinfo_validate_items_post;
+ struct HPMHookPoint *HP_quest_questinfo_validate_homunculus_level_pre;
+ struct HPMHookPoint *HP_quest_questinfo_validate_homunculus_level_post;
+ struct HPMHookPoint *HP_quest_questinfo_validate_homunculus_type_pre;
+ struct HPMHookPoint *HP_quest_questinfo_validate_homunculus_type_post;
+ struct HPMHookPoint *HP_quest_questinfo_validate_quests_pre;
+ struct HPMHookPoint *HP_quest_questinfo_validate_quests_post;
+ struct HPMHookPoint *HP_quest_questinfo_vector_clear_pre;
+ struct HPMHookPoint *HP_quest_questinfo_vector_clear_post;
struct HPMHookPoint *HP_rnd_init_pre;
struct HPMHookPoint *HP_rnd_init_post;
struct HPMHookPoint *HP_rnd_final_pre;
@@ -11211,6 +11235,30 @@ struct {
int HP_quest_read_db_post;
int HP_quest_read_db_sub_pre;
int HP_quest_read_db_sub_post;
+ int HP_quest_questinfo_validate_icon_pre;
+ int HP_quest_questinfo_validate_icon_post;
+ int HP_quest_questinfo_refresh_pre;
+ int HP_quest_questinfo_refresh_post;
+ int HP_quest_questinfo_validate_pre;
+ int HP_quest_questinfo_validate_post;
+ int HP_quest_questinfo_validate_job_pre;
+ int HP_quest_questinfo_validate_job_post;
+ int HP_quest_questinfo_validate_sex_pre;
+ int HP_quest_questinfo_validate_sex_post;
+ int HP_quest_questinfo_validate_baselevel_pre;
+ int HP_quest_questinfo_validate_baselevel_post;
+ int HP_quest_questinfo_validate_joblevel_pre;
+ int HP_quest_questinfo_validate_joblevel_post;
+ int HP_quest_questinfo_validate_items_pre;
+ int HP_quest_questinfo_validate_items_post;
+ int HP_quest_questinfo_validate_homunculus_level_pre;
+ int HP_quest_questinfo_validate_homunculus_level_post;
+ int HP_quest_questinfo_validate_homunculus_type_pre;
+ int HP_quest_questinfo_validate_homunculus_type_post;
+ int HP_quest_questinfo_validate_quests_pre;
+ int HP_quest_questinfo_validate_quests_post;
+ int HP_quest_questinfo_vector_clear_pre;
+ int HP_quest_questinfo_vector_clear_post;
int HP_rnd_init_pre;
int HP_rnd_init_post;
int HP_rnd_final_pre;
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
index 01e5e166b..53a8f55a0 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
@@ -2466,6 +2466,18 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(quest->clear, HP_quest_clear) },
{ HP_POP(quest->read_db, HP_quest_read_db) },
{ HP_POP(quest->read_db_sub, HP_quest_read_db_sub) },
+ { HP_POP(quest->questinfo_validate_icon, HP_quest_questinfo_validate_icon) },
+ { HP_POP(quest->questinfo_refresh, HP_quest_questinfo_refresh) },
+ { HP_POP(quest->questinfo_validate, HP_quest_questinfo_validate) },
+ { HP_POP(quest->questinfo_validate_job, HP_quest_questinfo_validate_job) },
+ { HP_POP(quest->questinfo_validate_sex, HP_quest_questinfo_validate_sex) },
+ { HP_POP(quest->questinfo_validate_baselevel, HP_quest_questinfo_validate_baselevel) },
+ { HP_POP(quest->questinfo_validate_joblevel, HP_quest_questinfo_validate_joblevel) },
+ { HP_POP(quest->questinfo_validate_items, HP_quest_questinfo_validate_items) },
+ { HP_POP(quest->questinfo_validate_homunculus_level, HP_quest_questinfo_validate_homunculus_level) },
+ { HP_POP(quest->questinfo_validate_homunculus_type, HP_quest_questinfo_validate_homunculus_type) },
+ { HP_POP(quest->questinfo_validate_quests, HP_quest_questinfo_validate_quests) },
+ { HP_POP(quest->questinfo_vector_clear, HP_quest_questinfo_vector_clear) },
/* rnd_interface */
{ HP_POP(rnd->init, HP_rnd_init) },
{ HP_POP(rnd->final, HP_rnd_final) },
diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
index 669230403..ab60f701c 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
@@ -64148,6 +64148,328 @@ struct quest_db* HP_quest_read_db_sub(struct config_setting_t *cs, int n, const
}
return retVal___;
}
+int HP_quest_questinfo_validate_icon(int icon) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if (HPMHooks.count.HP_quest_questinfo_validate_icon_pre > 0) {
+ int (*preHookFunc) (int *icon);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_icon_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_quest_questinfo_validate_icon_pre[hIndex].func;
+ retVal___ = preHookFunc(&icon);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.quest.questinfo_validate_icon(icon);
+ }
+ if (HPMHooks.count.HP_quest_questinfo_validate_icon_post > 0) {
+ int (*postHookFunc) (int retVal___, int icon);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_icon_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_quest_questinfo_validate_icon_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, icon);
+ }
+ }
+ return retVal___;
+}
+void HP_quest_questinfo_refresh(struct map_session_data *sd) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_quest_questinfo_refresh_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_refresh_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_quest_questinfo_refresh_pre[hIndex].func;
+ preHookFunc(&sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.quest.questinfo_refresh(sd);
+ }
+ if (HPMHooks.count.HP_quest_questinfo_refresh_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_refresh_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_quest_questinfo_refresh_post[hIndex].func;
+ postHookFunc(sd);
+ }
+ }
+ return;
+}
+bool HP_quest_questinfo_validate(struct map_session_data *sd, struct questinfo *qi) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_quest_questinfo_validate_pre > 0) {
+ bool (*preHookFunc) (struct map_session_data **sd, struct questinfo **qi);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_quest_questinfo_validate_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &qi);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.quest.questinfo_validate(sd, qi);
+ }
+ if (HPMHooks.count.HP_quest_questinfo_validate_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_quest_questinfo_validate_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, qi);
+ }
+ }
+ return retVal___;
+}
+bool HP_quest_questinfo_validate_job(struct map_session_data *sd, struct questinfo *qi) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_quest_questinfo_validate_job_pre > 0) {
+ bool (*preHookFunc) (struct map_session_data **sd, struct questinfo **qi);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_job_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_quest_questinfo_validate_job_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &qi);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.quest.questinfo_validate_job(sd, qi);
+ }
+ if (HPMHooks.count.HP_quest_questinfo_validate_job_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_job_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_quest_questinfo_validate_job_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, qi);
+ }
+ }
+ return retVal___;
+}
+bool HP_quest_questinfo_validate_sex(struct map_session_data *sd, struct questinfo *qi) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_quest_questinfo_validate_sex_pre > 0) {
+ bool (*preHookFunc) (struct map_session_data **sd, struct questinfo **qi);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_sex_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_quest_questinfo_validate_sex_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &qi);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.quest.questinfo_validate_sex(sd, qi);
+ }
+ if (HPMHooks.count.HP_quest_questinfo_validate_sex_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_sex_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_quest_questinfo_validate_sex_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, qi);
+ }
+ }
+ return retVal___;
+}
+bool HP_quest_questinfo_validate_baselevel(struct map_session_data *sd, struct questinfo *qi) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_quest_questinfo_validate_baselevel_pre > 0) {
+ bool (*preHookFunc) (struct map_session_data **sd, struct questinfo **qi);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_baselevel_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_quest_questinfo_validate_baselevel_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &qi);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.quest.questinfo_validate_baselevel(sd, qi);
+ }
+ if (HPMHooks.count.HP_quest_questinfo_validate_baselevel_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_baselevel_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_quest_questinfo_validate_baselevel_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, qi);
+ }
+ }
+ return retVal___;
+}
+bool HP_quest_questinfo_validate_joblevel(struct map_session_data *sd, struct questinfo *qi) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_quest_questinfo_validate_joblevel_pre > 0) {
+ bool (*preHookFunc) (struct map_session_data **sd, struct questinfo **qi);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_joblevel_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_quest_questinfo_validate_joblevel_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &qi);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.quest.questinfo_validate_joblevel(sd, qi);
+ }
+ if (HPMHooks.count.HP_quest_questinfo_validate_joblevel_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_joblevel_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_quest_questinfo_validate_joblevel_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, qi);
+ }
+ }
+ return retVal___;
+}
+bool HP_quest_questinfo_validate_items(struct map_session_data *sd, struct questinfo *qi) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_quest_questinfo_validate_items_pre > 0) {
+ bool (*preHookFunc) (struct map_session_data **sd, struct questinfo **qi);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_items_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_quest_questinfo_validate_items_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &qi);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.quest.questinfo_validate_items(sd, qi);
+ }
+ if (HPMHooks.count.HP_quest_questinfo_validate_items_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_items_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_quest_questinfo_validate_items_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, qi);
+ }
+ }
+ return retVal___;
+}
+bool HP_quest_questinfo_validate_homunculus_level(struct map_session_data *sd, struct questinfo *qi) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_quest_questinfo_validate_homunculus_level_pre > 0) {
+ bool (*preHookFunc) (struct map_session_data **sd, struct questinfo **qi);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_homunculus_level_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_quest_questinfo_validate_homunculus_level_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &qi);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.quest.questinfo_validate_homunculus_level(sd, qi);
+ }
+ if (HPMHooks.count.HP_quest_questinfo_validate_homunculus_level_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_homunculus_level_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_quest_questinfo_validate_homunculus_level_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, qi);
+ }
+ }
+ return retVal___;
+}
+bool HP_quest_questinfo_validate_homunculus_type(struct map_session_data *sd, struct questinfo *qi) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_quest_questinfo_validate_homunculus_type_pre > 0) {
+ bool (*preHookFunc) (struct map_session_data **sd, struct questinfo **qi);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_homunculus_type_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_quest_questinfo_validate_homunculus_type_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &qi);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.quest.questinfo_validate_homunculus_type(sd, qi);
+ }
+ if (HPMHooks.count.HP_quest_questinfo_validate_homunculus_type_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_homunculus_type_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_quest_questinfo_validate_homunculus_type_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, qi);
+ }
+ }
+ return retVal___;
+}
+bool HP_quest_questinfo_validate_quests(struct map_session_data *sd, struct questinfo *qi) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_quest_questinfo_validate_quests_pre > 0) {
+ bool (*preHookFunc) (struct map_session_data **sd, struct questinfo **qi);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_quests_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_quest_questinfo_validate_quests_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &qi);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.quest.questinfo_validate_quests(sd, qi);
+ }
+ if (HPMHooks.count.HP_quest_questinfo_validate_quests_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_quests_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_quest_questinfo_validate_quests_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, qi);
+ }
+ }
+ return retVal___;
+}
+void HP_quest_questinfo_vector_clear(int m) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_quest_questinfo_vector_clear_pre > 0) {
+ void (*preHookFunc) (int *m);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_vector_clear_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_quest_questinfo_vector_clear_pre[hIndex].func;
+ preHookFunc(&m);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.quest.questinfo_vector_clear(m);
+ }
+ if (HPMHooks.count.HP_quest_questinfo_vector_clear_post > 0) {
+ void (*postHookFunc) (int m);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_vector_clear_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_quest_questinfo_vector_clear_post[hIndex].func;
+ postHookFunc(m);
+ }
+ }
+ return;
+}
/* rnd_interface */
void HP_rnd_init(void) {
int hIndex = 0;