diff options
Diffstat (limited to 'src/plugins')
4 files changed, 50 insertions, 16 deletions
diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc index 24958711e..44323e85c 100644 --- a/src/plugins/HPMHooking/HPMHooking.Defs.inc +++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc @@ -1712,6 +1712,8 @@ typedef void (*HPMHOOK_pre_clif_addskill) (struct map_session_data **sd, int *id typedef void (*HPMHOOK_post_clif_addskill) (struct map_session_data *sd, int id); typedef void (*HPMHOOK_pre_clif_deleteskill) (struct map_session_data **sd, int *id); typedef void (*HPMHOOK_post_clif_deleteskill) (struct map_session_data *sd, int id); +typedef void (*HPMHOOK_pre_clif_playerSkillToPacket) (struct map_session_data **sd, struct SKILLDATA **skillData, int *skillId, int *idx, bool *newSkill); +typedef void (*HPMHOOK_post_clif_playerSkillToPacket) (struct map_session_data *sd, struct SKILLDATA *skillData, int skillId, int idx, bool newSkill); typedef void (*HPMHOOK_pre_clif_party_created) (struct map_session_data **sd, int *result); typedef void (*HPMHOOK_post_clif_party_created) (struct map_session_data *sd, int result); typedef void (*HPMHOOK_pre_clif_party_member_info) (struct party_data **p, struct map_session_data **sd); @@ -2050,8 +2052,8 @@ typedef int (*HPMHOOK_pre_clif_delay_damage_sub) (int *tid, int64 *tick, int *id typedef int (*HPMHOOK_post_clif_delay_damage_sub) (int retVal___, int tid, int64 tick, int id, intptr_t data); typedef void (*HPMHOOK_pre_clif_npc_market_open) (struct map_session_data **sd, struct npc_data **nd); typedef void (*HPMHOOK_post_clif_npc_market_open) (struct map_session_data *sd, struct npc_data *nd); -typedef void (*HPMHOOK_pre_clif_npc_market_purchase_ack) (struct map_session_data **sd, const struct itemlist **item_list, unsigned char *response); -typedef void (*HPMHOOK_post_clif_npc_market_purchase_ack) (struct map_session_data *sd, const struct itemlist *item_list, unsigned char response); +typedef void (*HPMHOOK_pre_clif_npc_market_purchase_ack) (struct map_session_data **sd, const struct itemlist **item_list, enum market_buy_result *response); +typedef void (*HPMHOOK_post_clif_npc_market_purchase_ack) (struct map_session_data *sd, const struct itemlist *item_list, enum market_buy_result response); typedef bool (*HPMHOOK_pre_clif_parse_roulette_db) (void); typedef bool (*HPMHOOK_post_clif_parse_roulette_db) (bool retVal___); typedef void (*HPMHOOK_pre_clif_roulette_generate_ack) (struct map_session_data **sd, enum GENERATE_ROULETTE_ACK *result, short *stage, short *prizeIdx, int *bonusItemID); @@ -5782,8 +5784,8 @@ typedef bool (*HPMHOOK_pre_npc_trader_pay) (struct npc_data **nd, struct map_ses typedef bool (*HPMHOOK_post_npc_trader_pay) (bool retVal___, struct npc_data *nd, struct map_session_data *sd, int price, int points); typedef void (*HPMHOOK_pre_npc_trader_update) (int *master); typedef void (*HPMHOOK_post_npc_trader_update) (int master); -typedef int (*HPMHOOK_pre_npc_market_buylist) (struct map_session_data **sd, struct itemlist **item_list); -typedef int (*HPMHOOK_post_npc_market_buylist) (int retVal___, struct map_session_data *sd, struct itemlist *item_list); +typedef enum market_buy_result (*HPMHOOK_pre_npc_market_buylist) (struct map_session_data **sd, struct itemlist **item_list); +typedef enum market_buy_result (*HPMHOOK_post_npc_market_buylist) (enum market_buy_result retVal___, struct map_session_data *sd, struct itemlist *item_list); typedef int (*HPMHOOK_pre_npc_barter_buylist) (struct map_session_data **sd, struct barteritemlist **item_list); typedef int (*HPMHOOK_post_npc_barter_buylist) (int retVal___, struct map_session_data *sd, struct barteritemlist *item_list); typedef bool (*HPMHOOK_pre_npc_trader_open) (struct map_session_data **sd, struct npc_data **nd); @@ -6074,8 +6076,8 @@ typedef bool (*HPMHOOK_pre_pc_adoption) (struct map_session_data **p1_sd, struct typedef bool (*HPMHOOK_post_pc_adoption) (bool retVal___, struct map_session_data *p1_sd, struct map_session_data *p2_sd, struct map_session_data *b_sd); typedef int (*HPMHOOK_pre_pc_updateweightstatus) (struct map_session_data **sd); typedef int (*HPMHOOK_post_pc_updateweightstatus) (int retVal___, struct map_session_data *sd); -typedef int (*HPMHOOK_pre_pc_addautobonus) (struct s_autobonus **bonus, char *max, const char **bonus_script, short *rate, unsigned int *dur, short *atk_type, const char **o_script, unsigned short *pos, bool *onskill); -typedef int (*HPMHOOK_post_pc_addautobonus) (int retVal___, struct s_autobonus *bonus, char max, const char *bonus_script, short rate, unsigned int dur, short atk_type, const char *o_script, unsigned short pos, bool onskill); +typedef int (*HPMHOOK_pre_pc_addautobonus) (struct s_autobonus **bonus, char *max, const char **bonus_script, short *rate, unsigned int *dur, short *atk_type, const char **o_script, unsigned int *pos, bool *onskill); +typedef int (*HPMHOOK_post_pc_addautobonus) (int retVal___, struct s_autobonus *bonus, char max, const char *bonus_script, short rate, unsigned int dur, short atk_type, const char *o_script, unsigned int pos, bool onskill); typedef int (*HPMHOOK_pre_pc_exeautobonus) (struct map_session_data **sd, struct s_autobonus **bonus); typedef int (*HPMHOOK_post_pc_exeautobonus) (int retVal___, struct map_session_data *sd, struct s_autobonus *bonus); typedef int (*HPMHOOK_pre_pc_endautobonus) (int *tid, int64 *tick, int *id, intptr_t *data); diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc index ad49bacb4..c87729dee 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc @@ -1302,6 +1302,8 @@ struct { struct HPMHookPoint *HP_clif_addskill_post; struct HPMHookPoint *HP_clif_deleteskill_pre; struct HPMHookPoint *HP_clif_deleteskill_post; + struct HPMHookPoint *HP_clif_playerSkillToPacket_pre; + struct HPMHookPoint *HP_clif_playerSkillToPacket_post; struct HPMHookPoint *HP_clif_party_created_pre; struct HPMHookPoint *HP_clif_party_created_post; struct HPMHookPoint *HP_clif_party_member_info_pre; @@ -8097,6 +8099,8 @@ struct { int HP_clif_addskill_post; int HP_clif_deleteskill_pre; int HP_clif_deleteskill_post; + int HP_clif_playerSkillToPacket_pre; + int HP_clif_playerSkillToPacket_post; int HP_clif_party_created_pre; int HP_clif_party_created_post; int HP_clif_party_member_info_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc index 474bcfb14..656cc7737 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc @@ -675,6 +675,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->skillinfo, HP_clif_skillinfo) }, { HP_POP(clif->addskill, HP_clif_addskill) }, { HP_POP(clif->deleteskill, HP_clif_deleteskill) }, + { HP_POP(clif->playerSkillToPacket, HP_clif_playerSkillToPacket) }, { HP_POP(clif->party_created, HP_clif_party_created) }, { HP_POP(clif->party_member_info, HP_clif_party_member_info) }, { HP_POP(clif->party_info, HP_clif_party_info) }, diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc index 8817c34cc..85d8d8b95 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc @@ -16980,6 +16980,32 @@ void HP_clif_deleteskill(struct map_session_data *sd, int id) { } return; } +void HP_clif_playerSkillToPacket(struct map_session_data *sd, struct SKILLDATA *skillData, int skillId, int idx, bool newSkill) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_playerSkillToPacket_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, struct SKILLDATA **skillData, int *skillId, int *idx, bool *newSkill); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_playerSkillToPacket_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_playerSkillToPacket_pre[hIndex].func; + preHookFunc(&sd, &skillData, &skillId, &idx, &newSkill); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.playerSkillToPacket(sd, skillData, skillId, idx, newSkill); + } + if (HPMHooks.count.HP_clif_playerSkillToPacket_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, struct SKILLDATA *skillData, int skillId, int idx, bool newSkill); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_playerSkillToPacket_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_playerSkillToPacket_post[hIndex].func; + postHookFunc(sd, skillData, skillId, idx, newSkill); + } + } + return; +} void HP_clif_party_created(struct map_session_data *sd, int result) { int hIndex = 0; if (HPMHooks.count.HP_clif_party_created_pre > 0) { @@ -21386,10 +21412,10 @@ void HP_clif_npc_market_open(struct map_session_data *sd, struct npc_data *nd) { } return; } -void HP_clif_npc_market_purchase_ack(struct map_session_data *sd, const struct itemlist *item_list, unsigned char response) { +void HP_clif_npc_market_purchase_ack(struct map_session_data *sd, const struct itemlist *item_list, enum market_buy_result response) { int hIndex = 0; if (HPMHooks.count.HP_clif_npc_market_purchase_ack_pre > 0) { - void (*preHookFunc) (struct map_session_data **sd, const struct itemlist **item_list, unsigned char *response); + void (*preHookFunc) (struct map_session_data **sd, const struct itemlist **item_list, enum market_buy_result *response); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_npc_market_purchase_ack_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_clif_npc_market_purchase_ack_pre[hIndex].func; @@ -21404,7 +21430,7 @@ void HP_clif_npc_market_purchase_ack(struct map_session_data *sd, const struct i HPMHooks.source.clif.npc_market_purchase_ack(sd, item_list, response); } if (HPMHooks.count.HP_clif_npc_market_purchase_ack_post > 0) { - void (*postHookFunc) (struct map_session_data *sd, const struct itemlist *item_list, unsigned char response); + void (*postHookFunc) (struct map_session_data *sd, const struct itemlist *item_list, enum market_buy_result response); for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_npc_market_purchase_ack_post; hIndex++) { postHookFunc = HPMHooks.list.HP_clif_npc_market_purchase_ack_post[hIndex].func; postHookFunc(sd, item_list, response); @@ -57721,11 +57747,12 @@ void HP_npc_trader_update(int master) { } return; } -int HP_npc_market_buylist(struct map_session_data *sd, struct itemlist *item_list) { +enum market_buy_result HP_npc_market_buylist(struct map_session_data *sd, struct itemlist *item_list) { +/* Unknown return type 'enum market_buy_result'. Initializing to '0'. */ int hIndex = 0; - int retVal___ = 0; + enum market_buy_result retVal___ = 0; if (HPMHooks.count.HP_npc_market_buylist_pre > 0) { - int (*preHookFunc) (struct map_session_data **sd, struct itemlist **item_list); + enum market_buy_result (*preHookFunc) (struct map_session_data **sd, struct itemlist **item_list); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_npc_market_buylist_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_npc_market_buylist_pre[hIndex].func; @@ -57740,7 +57767,7 @@ int HP_npc_market_buylist(struct map_session_data *sd, struct itemlist *item_lis retVal___ = HPMHooks.source.npc.market_buylist(sd, item_list); } if (HPMHooks.count.HP_npc_market_buylist_post > 0) { - int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct itemlist *item_list); + enum market_buy_result (*postHookFunc) (enum market_buy_result retVal___, struct map_session_data *sd, struct itemlist *item_list); for (hIndex = 0; hIndex < HPMHooks.count.HP_npc_market_buylist_post; hIndex++) { postHookFunc = HPMHooks.list.HP_npc_market_buylist_post[hIndex].func; retVal___ = postHookFunc(retVal___, sd, item_list); @@ -61492,11 +61519,11 @@ int HP_pc_updateweightstatus(struct map_session_data *sd) { } return retVal___; } -int HP_pc_addautobonus(struct s_autobonus *bonus, char max, const char *bonus_script, short rate, unsigned int dur, short atk_type, const char *o_script, unsigned short pos, bool onskill) { +int HP_pc_addautobonus(struct s_autobonus *bonus, char max, const char *bonus_script, short rate, unsigned int dur, short atk_type, const char *o_script, unsigned int pos, bool onskill) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_pc_addautobonus_pre > 0) { - int (*preHookFunc) (struct s_autobonus **bonus, char *max, const char **bonus_script, short *rate, unsigned int *dur, short *atk_type, const char **o_script, unsigned short *pos, bool *onskill); + int (*preHookFunc) (struct s_autobonus **bonus, char *max, const char **bonus_script, short *rate, unsigned int *dur, short *atk_type, const char **o_script, unsigned int *pos, bool *onskill); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_addautobonus_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_pc_addautobonus_pre[hIndex].func; @@ -61511,7 +61538,7 @@ int HP_pc_addautobonus(struct s_autobonus *bonus, char max, const char *bonus_sc retVal___ = HPMHooks.source.pc.addautobonus(bonus, max, bonus_script, rate, dur, atk_type, o_script, pos, onskill); } if (HPMHooks.count.HP_pc_addautobonus_post > 0) { - int (*postHookFunc) (int retVal___, struct s_autobonus *bonus, char max, const char *bonus_script, short rate, unsigned int dur, short atk_type, const char *o_script, unsigned short pos, bool onskill); + int (*postHookFunc) (int retVal___, struct s_autobonus *bonus, char max, const char *bonus_script, short rate, unsigned int dur, short atk_type, const char *o_script, unsigned int pos, bool onskill); for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_addautobonus_post; hIndex++) { postHookFunc = HPMHooks.list.HP_pc_addautobonus_post[hIndex].func; retVal___ = postHookFunc(retVal___, bonus, max, bonus_script, rate, dur, atk_type, o_script, pos, onskill); |