diff options
Diffstat (limited to 'src/plugins/HPMHooking')
4 files changed, 106 insertions, 0 deletions
diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc index 4f4d628a5..24958711e 100644 --- a/src/plugins/HPMHooking/HPMHooking.Defs.inc +++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc @@ -1296,6 +1296,10 @@ typedef void (*HPMHOOK_pre_clif_fame_taekwon) (struct map_session_data **sd, int typedef void (*HPMHOOK_post_clif_fame_taekwon) (struct map_session_data *sd, int points); typedef void (*HPMHOOK_pre_clif_ranklist) (struct map_session_data **sd, enum fame_list_type *type); typedef void (*HPMHOOK_post_clif_ranklist) (struct map_session_data *sd, enum fame_list_type type); +typedef void (*HPMHOOK_pre_clif_ranklist_sub) (struct PACKET_ZC_ACK_RANKING_sub **ranks, enum fame_list_type *type); +typedef void (*HPMHOOK_post_clif_ranklist_sub) (struct PACKET_ZC_ACK_RANKING_sub *ranks, enum fame_list_type type); +typedef void (*HPMHOOK_pre_clif_ranklist_sub2) (uint32 **chars, uint32 **points, enum fame_list_type *type); +typedef void (*HPMHOOK_post_clif_ranklist_sub2) (uint32 *chars, uint32 *points, enum fame_list_type type); typedef void (*HPMHOOK_pre_clif_update_rankingpoint) (struct map_session_data **sd, enum fame_list_type *type, int *points); typedef void (*HPMHOOK_post_clif_update_rankingpoint) (struct map_session_data *sd, enum fame_list_type type, int points); typedef void (*HPMHOOK_pre_clif_pRanklist) (int *fd, struct map_session_data **sd); @@ -5300,6 +5304,8 @@ typedef int (*HPMHOOK_pre_mob_final) (void); typedef int (*HPMHOOK_post_mob_final) (int retVal___); typedef void (*HPMHOOK_pre_mob_reload) (void); typedef void (*HPMHOOK_post_mob_reload) (void); +typedef int (*HPMHOOK_pre_mob_reload_sub_mob) (struct mob_data **md, va_list args); +typedef int (*HPMHOOK_post_mob_reload_sub_mob) (int retVal___, struct mob_data *md, va_list args); typedef struct mob_db* (*HPMHOOK_pre_mob_db) (int *index); typedef struct mob_db* (*HPMHOOK_post_mob_db) (struct mob_db* retVal___, int index); typedef struct mob_chat* (*HPMHOOK_pre_mob_chat) (short *id); diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc index 14e1cc8ea..ad49bacb4 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc @@ -886,6 +886,10 @@ struct { struct HPMHookPoint *HP_clif_fame_taekwon_post; struct HPMHookPoint *HP_clif_ranklist_pre; struct HPMHookPoint *HP_clif_ranklist_post; + struct HPMHookPoint *HP_clif_ranklist_sub_pre; + struct HPMHookPoint *HP_clif_ranklist_sub_post; + struct HPMHookPoint *HP_clif_ranklist_sub2_pre; + struct HPMHookPoint *HP_clif_ranklist_sub2_post; struct HPMHookPoint *HP_clif_update_rankingpoint_pre; struct HPMHookPoint *HP_clif_update_rankingpoint_post; struct HPMHookPoint *HP_clif_pRanklist_pre; @@ -3868,6 +3872,8 @@ struct { struct HPMHookPoint *HP_mob_final_post; struct HPMHookPoint *HP_mob_reload_pre; struct HPMHookPoint *HP_mob_reload_post; + struct HPMHookPoint *HP_mob_reload_sub_mob_pre; + struct HPMHookPoint *HP_mob_reload_sub_mob_post; struct HPMHookPoint *HP_mob_db_pre; struct HPMHookPoint *HP_mob_db_post; struct HPMHookPoint *HP_mob_chat_pre; @@ -7675,6 +7681,10 @@ struct { int HP_clif_fame_taekwon_post; int HP_clif_ranklist_pre; int HP_clif_ranklist_post; + int HP_clif_ranklist_sub_pre; + int HP_clif_ranklist_sub_post; + int HP_clif_ranklist_sub2_pre; + int HP_clif_ranklist_sub2_post; int HP_clif_update_rankingpoint_pre; int HP_clif_update_rankingpoint_post; int HP_clif_pRanklist_pre; @@ -10657,6 +10667,8 @@ struct { int HP_mob_final_post; int HP_mob_reload_pre; int HP_mob_reload_post; + int HP_mob_reload_sub_mob_pre; + int HP_mob_reload_sub_mob_post; int HP_mob_db_pre; int HP_mob_db_post; int HP_mob_chat_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc index a5848995c..474bcfb14 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc @@ -467,6 +467,8 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->fame_alchemist, HP_clif_fame_alchemist) }, { HP_POP(clif->fame_taekwon, HP_clif_fame_taekwon) }, { HP_POP(clif->ranklist, HP_clif_ranklist) }, + { HP_POP(clif->ranklist_sub, HP_clif_ranklist_sub) }, + { HP_POP(clif->ranklist_sub2, HP_clif_ranklist_sub2) }, { HP_POP(clif->update_rankingpoint, HP_clif_update_rankingpoint) }, { HP_POP(clif->pRanklist, HP_clif_pRanklist) }, { HP_POP(clif->hotkeys, HP_clif_hotkeys) }, @@ -1983,6 +1985,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(mob->init, HP_mob_init) }, { HP_POP(mob->final, HP_mob_final) }, { HP_POP(mob->reload, HP_mob_reload) }, + { HP_POP(mob->reload_sub_mob, HP_mob_reload_sub_mob) }, { HP_POP(mob->db, HP_mob_db) }, { HP_POP(mob->chat, HP_mob_chat) }, { HP_POP(mob->makedummymobdb, HP_mob_makedummymobdb) }, diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc index 25844b1cc..8817c34cc 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc @@ -11539,6 +11539,58 @@ void HP_clif_ranklist(struct map_session_data *sd, enum fame_list_type type) { } return; } +void HP_clif_ranklist_sub(struct PACKET_ZC_ACK_RANKING_sub *ranks, enum fame_list_type type) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_ranklist_sub_pre > 0) { + void (*preHookFunc) (struct PACKET_ZC_ACK_RANKING_sub **ranks, enum fame_list_type *type); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_ranklist_sub_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_ranklist_sub_pre[hIndex].func; + preHookFunc(&ranks, &type); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.ranklist_sub(ranks, type); + } + if (HPMHooks.count.HP_clif_ranklist_sub_post > 0) { + void (*postHookFunc) (struct PACKET_ZC_ACK_RANKING_sub *ranks, enum fame_list_type type); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_ranklist_sub_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_ranklist_sub_post[hIndex].func; + postHookFunc(ranks, type); + } + } + return; +} +void HP_clif_ranklist_sub2(uint32 *chars, uint32 *points, enum fame_list_type type) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_ranklist_sub2_pre > 0) { + void (*preHookFunc) (uint32 **chars, uint32 **points, enum fame_list_type *type); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_ranklist_sub2_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_ranklist_sub2_pre[hIndex].func; + preHookFunc(&chars, &points, &type); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.ranklist_sub2(chars, points, type); + } + if (HPMHooks.count.HP_clif_ranklist_sub2_post > 0) { + void (*postHookFunc) (uint32 *chars, uint32 *points, enum fame_list_type type); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_ranklist_sub2_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_ranklist_sub2_post[hIndex].func; + postHookFunc(chars, points, type); + } + } + return; +} void HP_clif_update_rankingpoint(struct map_session_data *sd, enum fame_list_type type, int points) { int hIndex = 0; if (HPMHooks.count.HP_clif_update_rankingpoint_pre > 0) { @@ -51181,6 +51233,39 @@ void HP_mob_reload(void) { } return; } +int HP_mob_reload_sub_mob(struct mob_data *md, va_list args) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_mob_reload_sub_mob_pre > 0) { + int (*preHookFunc) (struct mob_data **md, va_list args); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mob_reload_sub_mob_pre; hIndex++) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_mob_reload_sub_mob_pre[hIndex].func; + retVal___ = preHookFunc(&md, args___copy); + va_end(args___copy); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list args___copy; va_copy(args___copy, args); + retVal___ = HPMHooks.source.mob.reload_sub_mob(md, args___copy); + va_end(args___copy); + } + if (HPMHooks.count.HP_mob_reload_sub_mob_post > 0) { + int (*postHookFunc) (int retVal___, struct mob_data *md, va_list args); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mob_reload_sub_mob_post; hIndex++) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_mob_reload_sub_mob_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, args___copy); + va_end(args___copy); + } + } + return retVal___; +} struct mob_db* HP_mob_db(int index) { int hIndex = 0; struct mob_db* retVal___ = NULL; |