summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/HPMHooking.c3
-rw-r--r--src/plugins/HPMHooking/HPMHooking.Defs.inc154
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc33
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc9
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.Hooks.inc197
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.sources.inc1
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc37
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc10
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.Hooks.inc249
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.sources.inc1
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc133
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc34
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.Hooks.inc991
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.sources.inc1
14 files changed, 1719 insertions, 134 deletions
diff --git a/src/plugins/HPMHooking.c b/src/plugins/HPMHooking.c
index b477cb5c3..aef09d7a7 100644
--- a/src/plugins/HPMHooking.c
+++ b/src/plugins/HPMHooking.c
@@ -25,6 +25,7 @@
#include "common/memmgr.h"
#include "common/mmo.h"
#include "common/socket.h"
+#include "common/packets.h"
PRAGMA_GCC5(GCC diagnostic push)
PRAGMA_GCC5(GCC diagnostic ignored "-Wdiscarded-qualifiers")
@@ -40,6 +41,8 @@ PRAGMA_GCC5(GCC diagnostic ignored "-Wdiscarded-qualifiers")
#include "login/lclif.p.h"
#include "login/login.h"
#include "login/loginlog.h"
+#include "login/packets_ac_struct.h"
+#include "login/packets_ca_struct.h"
#elif defined (HPMHOOKING_CHAR)
#define HPM_SERVER_TYPE SERVER_TYPE_CHAR
#define HPM_CORE_INCLUDE "HPMHooking/HPMHooking_char.HPMHooksCore.inc"
diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc
index f80dc9003..0a186939e 100644
--- a/src/plugins/HPMHooking/HPMHooking.Defs.inc
+++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc
@@ -176,8 +176,12 @@ typedef void (*HPMHOOK_pre_achievement_init_titles) (struct map_session_data **s
typedef void (*HPMHOOK_post_achievement_init_titles) (struct map_session_data *sd);
typedef bool (*HPMHOOK_pre_achievement_check_title) (struct map_session_data **sd, int *title_id);
typedef bool (*HPMHOOK_post_achievement_check_title) (bool retVal___, struct map_session_data *sd, int title_id);
-typedef void (*HPMHOOK_pre_achievement_get_rewards) (struct map_session_data **sd, const struct achievement_data **ad);
-typedef void (*HPMHOOK_post_achievement_get_rewards) (struct map_session_data *sd, const struct achievement_data *ad);
+typedef bool (*HPMHOOK_pre_achievement_get_rewards) (struct map_session_data **sd, const struct achievement_data **ad);
+typedef bool (*HPMHOOK_post_achievement_get_rewards) (bool retVal___, struct map_session_data *sd, const struct achievement_data *ad);
+typedef void (*HPMHOOK_pre_achievement_get_rewards_buffs) (struct map_session_data **sd, const struct achievement_data **ad);
+typedef void (*HPMHOOK_post_achievement_get_rewards_buffs) (struct map_session_data *sd, const struct achievement_data *ad);
+typedef void (*HPMHOOK_pre_achievement_get_rewards_items) (struct map_session_data **sd, const struct achievement_data **ad);
+typedef void (*HPMHOOK_post_achievement_get_rewards_items) (struct map_session_data *sd, const struct achievement_data *ad);
#endif // MAP_ACHIEVEMENT_H
#ifdef MAP_ATCOMMAND_H /* atcommand */
typedef void (*HPMHOOK_pre_atcommand_init) (bool *minimal);
@@ -278,6 +282,8 @@ typedef void (*HPMHOOK_pre_battle_drain) (struct map_session_data **sd, struct b
typedef void (*HPMHOOK_post_battle_drain) (struct map_session_data *sd, struct block_list *tbl, int64 rdamage, int64 ldamage, int race, int boss);
typedef void (*HPMHOOK_pre_battle_reflect_damage) (struct block_list **target, struct block_list **src, struct Damage **wd, uint16 *skill_id);
typedef void (*HPMHOOK_post_battle_reflect_damage) (struct block_list *target, struct block_list *src, struct Damage *wd, uint16 skill_id);
+typedef void (*HPMHOOK_pre_battle_reflect_trap) (struct block_list **target, struct block_list **src, struct Damage **md, uint16 *skill_id);
+typedef void (*HPMHOOK_post_battle_reflect_trap) (struct block_list *target, struct block_list *src, struct Damage *md, uint16 skill_id);
typedef int (*HPMHOOK_pre_battle_attr_ratio) (int *atk_elem, int *def_type, int *def_lv);
typedef int (*HPMHOOK_post_battle_attr_ratio) (int retVal___, int atk_elem, int def_type, int def_lv);
typedef int64 (*HPMHOOK_pre_battle_attr_fix) (struct block_list **src, struct block_list **target, int64 *damage, int *atk_elem, int *def_type, int *def_lv);
@@ -532,8 +538,8 @@ typedef int (*HPMHOOK_pre_chr_memitemdata_to_sql) (const struct item *items[], i
typedef int (*HPMHOOK_post_chr_memitemdata_to_sql) (int retVal___, const struct item items[], int id, enum inventory_table_type table);
typedef int (*HPMHOOK_pre_chr_mmo_gender) (const struct char_session_data **sd, const struct mmo_charstatus **p, char *sex);
typedef int (*HPMHOOK_post_chr_mmo_gender) (int retVal___, const struct char_session_data *sd, const struct mmo_charstatus *p, char sex);
-typedef int (*HPMHOOK_pre_chr_mmo_chars_fromsql) (struct char_session_data **sd, uint8 **buf);
-typedef int (*HPMHOOK_post_chr_mmo_chars_fromsql) (int retVal___, struct char_session_data *sd, uint8 *buf);
+typedef int (*HPMHOOK_pre_chr_mmo_chars_fromsql) (struct char_session_data **sd, uint8 **buf, int **count);
+typedef int (*HPMHOOK_post_chr_mmo_chars_fromsql) (int retVal___, struct char_session_data *sd, uint8 *buf, int *count);
typedef int (*HPMHOOK_pre_chr_mmo_char_fromsql) (int *char_id, struct mmo_charstatus **p, bool *load_everything);
typedef int (*HPMHOOK_post_chr_mmo_char_fromsql) (int retVal___, int char_id, struct mmo_charstatus *p, bool load_everything);
typedef int (*HPMHOOK_pre_chr_mmo_char_sql_init) (void);
@@ -554,8 +560,8 @@ typedef int (*HPMHOOK_pre_chr_count_users) (void);
typedef int (*HPMHOOK_post_chr_count_users) (int retVal___);
typedef int (*HPMHOOK_pre_chr_mmo_char_tobuf) (uint8 **buffer, struct mmo_charstatus **p);
typedef int (*HPMHOOK_post_chr_mmo_char_tobuf) (int retVal___, uint8 *buffer, struct mmo_charstatus *p);
-typedef void (*HPMHOOK_pre_chr_mmo_char_send099d) (int *fd, struct char_session_data **sd);
-typedef void (*HPMHOOK_post_chr_mmo_char_send099d) (int fd, struct char_session_data *sd);
+typedef void (*HPMHOOK_pre_chr_send_HC_ACK_CHARINFO_PER_PAGE) (int *fd, struct char_session_data **sd);
+typedef void (*HPMHOOK_post_chr_send_HC_ACK_CHARINFO_PER_PAGE) (int fd, struct char_session_data *sd);
typedef void (*HPMHOOK_pre_chr_mmo_char_send_ban_list) (int *fd, struct char_session_data **sd);
typedef void (*HPMHOOK_post_chr_mmo_char_send_ban_list) (int fd, struct char_session_data *sd);
typedef void (*HPMHOOK_pre_chr_mmo_char_send_slots_info) (int *fd, struct char_session_data **sd);
@@ -1154,12 +1160,12 @@ typedef void (*HPMHOOK_pre_clif_package_announce) (struct map_session_data **sd,
typedef void (*HPMHOOK_post_clif_package_announce) (struct map_session_data *sd, int nameid, int containerid);
typedef void (*HPMHOOK_pre_clif_item_drop_announce) (struct map_session_data **sd, int *nameid, char **monsterName);
typedef void (*HPMHOOK_post_clif_item_drop_announce) (struct map_session_data *sd, int nameid, char *monsterName);
-typedef void (*HPMHOOK_pre_clif_clearunit_single) (int *id, clr_type *type, int *fd);
-typedef void (*HPMHOOK_post_clif_clearunit_single) (int id, clr_type type, int fd);
-typedef void (*HPMHOOK_pre_clif_clearunit_area) (struct block_list **bl, clr_type *type);
-typedef void (*HPMHOOK_post_clif_clearunit_area) (struct block_list *bl, clr_type type);
-typedef void (*HPMHOOK_pre_clif_clearunit_delayed) (struct block_list **bl, clr_type *type, int64 *tick);
-typedef void (*HPMHOOK_post_clif_clearunit_delayed) (struct block_list *bl, clr_type type, int64 tick);
+typedef void (*HPMHOOK_pre_clif_clearunit_single) (int *id, enum clr_type *type, int *fd);
+typedef void (*HPMHOOK_post_clif_clearunit_single) (int id, enum clr_type type, int fd);
+typedef void (*HPMHOOK_pre_clif_clearunit_area) (struct block_list **bl, enum clr_type *type);
+typedef void (*HPMHOOK_post_clif_clearunit_area) (struct block_list *bl, enum clr_type type);
+typedef void (*HPMHOOK_pre_clif_clearunit_delayed) (struct block_list **bl, enum clr_type *type, int64 *tick);
+typedef void (*HPMHOOK_post_clif_clearunit_delayed) (struct block_list *bl, enum clr_type type, int64 tick);
typedef void (*HPMHOOK_pre_clif_walkok) (struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_walkok) (struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_move) (struct unit_data **ud);
@@ -1332,6 +1338,18 @@ typedef void (*HPMHOOK_pre_clif_cartList) (struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_cartList) (struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_cartItems) (struct map_session_data **sd, enum inventory_type *type);
typedef void (*HPMHOOK_post_clif_cartItems) (struct map_session_data *sd, enum inventory_type type);
+typedef void (*HPMHOOK_pre_clif_inventoryExpansionInfo) (struct map_session_data **sd);
+typedef void (*HPMHOOK_post_clif_inventoryExpansionInfo) (struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_inventoryExpandAck) (struct map_session_data **sd, enum expand_inventory *result, int *itemId);
+typedef void (*HPMHOOK_post_clif_inventoryExpandAck) (struct map_session_data *sd, enum expand_inventory result, int itemId);
+typedef void (*HPMHOOK_pre_clif_inventoryExpandResult) (struct map_session_data **sd, enum expand_inventory_result *result);
+typedef void (*HPMHOOK_post_clif_inventoryExpandResult) (struct map_session_data *sd, enum expand_inventory_result result);
+typedef void (*HPMHOOK_pre_clif_pInventoryExpansion) (int *fd, struct map_session_data **sd);
+typedef void (*HPMHOOK_post_clif_pInventoryExpansion) (int fd, struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_pInventoryExpansionConfirmed) (int *fd, struct map_session_data **sd);
+typedef void (*HPMHOOK_post_clif_pInventoryExpansionConfirmed) (int fd, struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_pInventoryExpansionRejected) (int *fd, struct map_session_data **sd);
+typedef void (*HPMHOOK_post_clif_pInventoryExpansionRejected) (int fd, struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_favorite_item) (struct map_session_data **sd, unsigned short *index);
typedef void (*HPMHOOK_post_clif_favorite_item) (struct map_session_data *sd, unsigned short index);
typedef void (*HPMHOOK_pre_clif_clearcart) (int *fd);
@@ -1512,6 +1530,10 @@ typedef void (*HPMHOOK_pre_clif_specialeffect_single) (struct block_list **bl, i
typedef void (*HPMHOOK_post_clif_specialeffect_single) (struct block_list *bl, int type, int fd);
typedef void (*HPMHOOK_pre_clif_specialeffect_value) (struct block_list **bl, int *effect_id, int *num, send_target *target);
typedef void (*HPMHOOK_post_clif_specialeffect_value) (struct block_list *bl, int effect_id, int num, send_target target);
+typedef void (*HPMHOOK_pre_clif_removeSpecialEffect) (struct block_list **bl, int *effectId, enum send_target *target);
+typedef void (*HPMHOOK_post_clif_removeSpecialEffect) (struct block_list *bl, int effectId, enum send_target target);
+typedef void (*HPMHOOK_pre_clif_removeSpecialEffect_single) (struct block_list **bl, int *effectId, struct block_list **targetBl);
+typedef void (*HPMHOOK_post_clif_removeSpecialEffect_single) (struct block_list *bl, int effectId, struct block_list *targetBl);
typedef void (*HPMHOOK_pre_clif_millenniumshield) (struct block_list **bl, short *shields);
typedef void (*HPMHOOK_post_clif_millenniumshield) (struct block_list *bl, short shields);
typedef void (*HPMHOOK_pre_clif_spiritcharm) (struct map_session_data **sd);
@@ -1562,6 +1584,8 @@ typedef void (*HPMHOOK_pre_clif_messagecolor_self) (int *fd, uint32 *color, cons
typedef void (*HPMHOOK_post_clif_messagecolor_self) (int fd, uint32 color, const char *msg);
typedef void (*HPMHOOK_pre_clif_messagecolor) (struct block_list **bl, uint32 *color, const char **msg);
typedef void (*HPMHOOK_post_clif_messagecolor) (struct block_list *bl, uint32 color, const char *msg);
+typedef void (*HPMHOOK_pre_clif_serviceMessageColor) (struct map_session_data **sd, uint32 *color, const char **msg);
+typedef void (*HPMHOOK_post_clif_serviceMessageColor) (struct map_session_data *sd, uint32 color, const char *msg);
typedef void (*HPMHOOK_pre_clif_disp_overhead) (struct block_list **bl, const char **mes, enum send_target *target, struct block_list **target_bl);
typedef void (*HPMHOOK_post_clif_disp_overhead) (struct block_list *bl, const char *mes, enum send_target target, struct block_list *target_bl);
typedef void (*HPMHOOK_pre_clif_notify_playerchat) (struct block_list **bl, const char **mes);
@@ -1996,8 +2020,8 @@ typedef void (*HPMHOOK_pre_clif_npc_market_purchase_ack) (struct map_session_dat
typedef void (*HPMHOOK_post_clif_npc_market_purchase_ack) (struct map_session_data *sd, const struct itemlist *item_list, unsigned char 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, unsigned char *result, short *stage, short *prizeIdx, int *bonusItemID);
-typedef void (*HPMHOOK_post_clif_roulette_generate_ack) (struct map_session_data *sd, unsigned char result, short stage, short prizeIdx, int bonusItemID);
+typedef void (*HPMHOOK_pre_clif_roulette_generate_ack) (struct map_session_data **sd, enum GENERATE_ROULETTE_ACK *result, short *stage, short *prizeIdx, int *bonusItemID);
+typedef void (*HPMHOOK_post_clif_roulette_generate_ack) (struct map_session_data *sd, enum GENERATE_ROULETTE_ACK result, short stage, short prizeIdx, int bonusItemID);
typedef void (*HPMHOOK_pre_clif_openmergeitem) (int *fd, struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_openmergeitem) (int fd, struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_cancelmergeitem) (int *fd, struct map_session_data **sd);
@@ -2116,8 +2140,14 @@ typedef void (*HPMHOOK_pre_clif_pStatusUp) (int *fd, struct map_session_data **s
typedef void (*HPMHOOK_post_clif_pStatusUp) (int fd, struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_pSkillUp) (int *fd, struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_pSkillUp) (int fd, struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_useSkillToIdReal) (int *fd, struct map_session_data **sd, int *skill_id, int *skill_lv, int *target_id);
+typedef void (*HPMHOOK_post_clif_useSkillToIdReal) (int fd, struct map_session_data *sd, int skill_id, int skill_lv, int target_id);
typedef void (*HPMHOOK_pre_clif_pUseSkillToId) (int *fd, struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_pUseSkillToId) (int fd, struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_pStartUseSkillToId) (int *fd, struct map_session_data **sd);
+typedef void (*HPMHOOK_post_clif_pStartUseSkillToId) (int fd, struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_pStopUseSkillToId) (int *fd, struct map_session_data **sd);
+typedef void (*HPMHOOK_post_clif_pStopUseSkillToId) (int fd, struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_pUseSkillToId_homun) (struct homun_data **hd, struct map_session_data **sd, int64 *tick, uint16 *skill_id, uint16 *skill_lv, int *target_id);
typedef void (*HPMHOOK_post_clif_pUseSkillToId_homun) (struct homun_data *hd, struct map_session_data *sd, int64 tick, uint16 skill_id, uint16 skill_lv, int target_id);
typedef void (*HPMHOOK_pre_clif_pUseSkillToId_mercenary) (struct mercenary_data **md, struct map_session_data **sd, int64 *tick, uint16 *skill_id, uint16 *skill_lv, int *target_id);
@@ -2616,6 +2646,18 @@ typedef void (*HPMHOOK_pre_clif_party_dead_notification) (struct map_session_dat
typedef void (*HPMHOOK_post_clif_party_dead_notification) (struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_pMemorialDungeonCommand) (int *fd, struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_pMemorialDungeonCommand) (int fd, struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_camera_showWindow) (struct map_session_data **sd);
+typedef void (*HPMHOOK_post_clif_camera_showWindow) (struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_camera_change) (struct map_session_data **sd, float *range, float *rotation, float *latitude, enum send_target *target);
+typedef void (*HPMHOOK_post_clif_camera_change) (struct map_session_data *sd, float range, float rotation, float latitude, enum send_target target);
+typedef void (*HPMHOOK_pre_clif_pCameraInfo) (int *fd, struct map_session_data **sd);
+typedef void (*HPMHOOK_post_clif_pCameraInfo) (int fd, struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_item_preview) (struct map_session_data **sd, int *n);
+typedef void (*HPMHOOK_post_clif_item_preview) (struct map_session_data *sd, int n);
+typedef bool (*HPMHOOK_pre_clif_enchant_equipment) (struct map_session_data **sd, enum equip_pos *pos, int *cardSlot, int *cardId);
+typedef bool (*HPMHOOK_post_clif_enchant_equipment) (bool retVal___, struct map_session_data *sd, enum equip_pos pos, int cardSlot, int cardId);
+typedef void (*HPMHOOK_pre_clif_pReqRemainTime) (int *fd, struct map_session_data **sd);
+typedef void (*HPMHOOK_post_clif_pReqRemainTime) (int fd, struct map_session_data *sd);
#endif // MAP_CLIF_H
#ifdef COMMON_CORE_H /* cmdline */
typedef void (*HPMHOOK_pre_cmdline_init) (void);
@@ -4056,6 +4098,10 @@ typedef enum parsefunc_rcode (*HPMHOOK_pre_PRIV__lclif_parse_CA_SSO_LOGIN_REQ) (
typedef enum parsefunc_rcode (*HPMHOOK_post_PRIV__lclif_parse_CA_SSO_LOGIN_REQ) (enum parsefunc_rcode retVal___, int fd, struct login_session_data *sd);
typedef enum parsefunc_rcode (*HPMHOOK_pre_PRIV__lclif_parse_CA_LOGIN_OTP) (int *fd, struct login_session_data **sd);
typedef enum parsefunc_rcode (*HPMHOOK_post_PRIV__lclif_parse_CA_LOGIN_OTP) (enum parsefunc_rcode retVal___, int fd, struct login_session_data *sd);
+typedef enum parsefunc_rcode (*HPMHOOK_pre_PRIV__lclif_parse_CA_ACK_MOBILE_OTP) (int *fd, struct login_session_data **sd);
+typedef enum parsefunc_rcode (*HPMHOOK_post_PRIV__lclif_parse_CA_ACK_MOBILE_OTP) (enum parsefunc_rcode retVal___, int fd, struct login_session_data *sd);
+typedef enum parsefunc_rcode (*HPMHOOK_pre_PRIV__lclif_parse_CA_OTP_CODE) (int *fd, struct login_session_data **sd);
+typedef enum parsefunc_rcode (*HPMHOOK_post_PRIV__lclif_parse_CA_OTP_CODE) (enum parsefunc_rcode retVal___, int fd, struct login_session_data *sd);
typedef enum parsefunc_rcode (*HPMHOOK_pre_PRIV__lclif_parse_CA_REQ_HASH) (int *fd, struct login_session_data **sd);
typedef enum parsefunc_rcode (*HPMHOOK_post_PRIV__lclif_parse_CA_REQ_HASH) (enum parsefunc_rcode retVal___, int fd, struct login_session_data *sd);
typedef enum parsefunc_rcode (*HPMHOOK_pre_PRIV__lclif_parse_CA_CHARSERVERCONNECT) (int *fd, struct login_session_data **sd);
@@ -4338,6 +4384,8 @@ typedef bool (*HPMHOOK_pre_login_client_login) (int *fd, struct login_session_da
typedef bool (*HPMHOOK_post_login_client_login) (bool retVal___, int fd, struct login_session_data *sd);
typedef bool (*HPMHOOK_pre_login_client_login_otp) (int *fd, struct login_session_data **sd);
typedef bool (*HPMHOOK_post_login_client_login_otp) (bool retVal___, int fd, struct login_session_data *sd);
+typedef void (*HPMHOOK_pre_login_client_login_mobile_otp_request) (int *fd, struct login_session_data **sd);
+typedef void (*HPMHOOK_post_login_client_login_mobile_otp_request) (int fd, struct login_session_data *sd);
typedef void (*HPMHOOK_pre_login_char_server_connection_status) (int *fd, struct login_session_data **sd, uint8 *status);
typedef void (*HPMHOOK_post_login_char_server_connection_status) (int fd, struct login_session_data *sd, uint8 status);
typedef void (*HPMHOOK_pre_login_parse_request_connection) (int *fd, struct login_session_data **sd, const char **ip, uint32 *ipl);
@@ -4442,6 +4490,8 @@ typedef void (*HPMHOOK_pre_map_zone_init) (void);
typedef void (*HPMHOOK_post_map_zone_init) (void);
typedef void (*HPMHOOK_pre_map_zone_remove) (int *m);
typedef void (*HPMHOOK_post_map_zone_remove) (int m);
+typedef void (*HPMHOOK_pre_map_zone_remove_all) (int *m);
+typedef void (*HPMHOOK_post_map_zone_remove_all) (int m);
typedef void (*HPMHOOK_pre_map_zone_apply) (int *m, struct map_zone_data **zone, const char **start, const char **buffer, const char **filepath);
typedef void (*HPMHOOK_post_map_zone_apply) (int m, struct map_zone_data *zone, const char *start, const char *buffer, const char *filepath);
typedef void (*HPMHOOK_pre_map_zone_change) (int *m, struct map_zone_data **zone, const char **start, const char **buffer, const char **filepath);
@@ -5657,6 +5707,16 @@ typedef int (*HPMHOOK_post_npc_secure_timeout_timer) (int retVal___, int tid, in
typedef void (*HPMHOOK_pre_nullpo_assert_report) (const char **file, int *line, const char **func, const char **targetname, const char **title);
typedef void (*HPMHOOK_post_nullpo_assert_report) (const char *file, int line, const char *func, const char *targetname, const char *title);
#endif // COMMON_NULLPO_H
+#ifdef COMMON_PACKETS_H /* packets */
+typedef void (*HPMHOOK_pre_packets_init) (void);
+typedef void (*HPMHOOK_post_packets_init) (void);
+typedef void (*HPMHOOK_pre_packets_final) (void);
+typedef void (*HPMHOOK_post_packets_final) (void);
+typedef void (*HPMHOOK_pre_packets_addLens) (void);
+typedef void (*HPMHOOK_post_packets_addLens) (void);
+typedef void (*HPMHOOK_pre_packets_addLen) (int *id, int *len);
+typedef void (*HPMHOOK_post_packets_addLen) (int id, int len);
+#endif // COMMON_PACKETS_H
#ifdef MAP_PARTY_H /* party */
typedef void (*HPMHOOK_pre_party_init) (bool *minimal);
typedef void (*HPMHOOK_post_party_init) (bool minimal);
@@ -5820,8 +5880,8 @@ typedef int (*HPMHOOK_pre_pc_setrestartvalue) (struct map_session_data **sd, int
typedef int (*HPMHOOK_post_pc_setrestartvalue) (int retVal___, struct map_session_data *sd, int type);
typedef int (*HPMHOOK_pre_pc_makesavestatus) (struct map_session_data **sd);
typedef int (*HPMHOOK_post_pc_makesavestatus) (int retVal___, struct map_session_data *sd);
-typedef void (*HPMHOOK_pre_pc_respawn) (struct map_session_data **sd, clr_type *clrtype);
-typedef void (*HPMHOOK_post_pc_respawn) (struct map_session_data *sd, clr_type clrtype);
+typedef void (*HPMHOOK_pre_pc_respawn) (struct map_session_data **sd, enum clr_type *clrtype);
+typedef void (*HPMHOOK_post_pc_respawn) (struct map_session_data *sd, enum clr_type clrtype);
typedef int (*HPMHOOK_pre_pc_setnewpc) (struct map_session_data **sd, int *account_id, int *char_id, int *login_id1, unsigned int *client_tick, int *sex, int *fd);
typedef int (*HPMHOOK_post_pc_setnewpc) (int retVal___, struct map_session_data *sd, int account_id, int char_id, int login_id1, unsigned int client_tick, int sex, int fd);
typedef bool (*HPMHOOK_pre_pc_authok) (struct map_session_data **sd, int *login_id2, time_t *expiration_time, int *group_id, const struct mmo_charstatus **st, bool *changing_mapservers);
@@ -5856,12 +5916,12 @@ typedef int (*HPMHOOK_pre_pc_calc_skilltree_normalize_job) (struct map_session_d
typedef int (*HPMHOOK_post_pc_calc_skilltree_normalize_job) (int retVal___, struct map_session_data *sd);
typedef int (*HPMHOOK_pre_pc_clean_skilltree) (struct map_session_data **sd);
typedef int (*HPMHOOK_post_pc_clean_skilltree) (int retVal___, struct map_session_data *sd);
-typedef int (*HPMHOOK_pre_pc_setpos) (struct map_session_data **sd, unsigned short *map_index, int *x, int *y, clr_type *clrtype);
-typedef int (*HPMHOOK_post_pc_setpos) (int retVal___, struct map_session_data *sd, unsigned short map_index, int x, int y, clr_type clrtype);
+typedef int (*HPMHOOK_pre_pc_setpos) (struct map_session_data **sd, unsigned short *map_index, int *x, int *y, enum clr_type *clrtype);
+typedef int (*HPMHOOK_post_pc_setpos) (int retVal___, struct map_session_data *sd, unsigned short map_index, int x, int y, enum clr_type clrtype);
typedef int (*HPMHOOK_pre_pc_setsavepoint) (struct map_session_data **sd, short *map_index, int *x, int *y);
typedef int (*HPMHOOK_post_pc_setsavepoint) (int retVal___, struct map_session_data *sd, short map_index, int x, int y);
-typedef int (*HPMHOOK_pre_pc_randomwarp) (struct map_session_data **sd, clr_type *type);
-typedef int (*HPMHOOK_post_pc_randomwarp) (int retVal___, struct map_session_data *sd, clr_type type);
+typedef int (*HPMHOOK_pre_pc_randomwarp) (struct map_session_data **sd, enum clr_type *type);
+typedef int (*HPMHOOK_post_pc_randomwarp) (int retVal___, struct map_session_data *sd, enum clr_type type);
typedef int (*HPMHOOK_pre_pc_memo) (struct map_session_data **sd, int *pos);
typedef int (*HPMHOOK_post_pc_memo) (int retVal___, struct map_session_data *sd, int pos);
typedef int (*HPMHOOK_pre_pc_checkadditem) (struct map_session_data **sd, int *nameid, int *amount);
@@ -5872,8 +5932,8 @@ typedef int (*HPMHOOK_pre_pc_search_inventory) (struct map_session_data **sd, in
typedef int (*HPMHOOK_post_pc_search_inventory) (int retVal___, struct map_session_data *sd, int item_id);
typedef int (*HPMHOOK_pre_pc_payzeny) (struct map_session_data **sd, int *zeny, enum e_log_pick_type *type, struct map_session_data **tsd);
typedef int (*HPMHOOK_post_pc_payzeny) (int retVal___, struct map_session_data *sd, int zeny, enum e_log_pick_type type, struct map_session_data *tsd);
-typedef int (*HPMHOOK_pre_pc_additem) (struct map_session_data **sd, struct item **item_data, int *amount, e_log_pick_type *log_type);
-typedef int (*HPMHOOK_post_pc_additem) (int retVal___, struct map_session_data *sd, struct item *item_data, int amount, e_log_pick_type log_type);
+typedef int (*HPMHOOK_pre_pc_additem) (struct map_session_data **sd, const struct item **item_data, int *amount, e_log_pick_type *log_type);
+typedef int (*HPMHOOK_post_pc_additem) (int retVal___, struct map_session_data *sd, const struct item *item_data, int amount, e_log_pick_type log_type);
typedef int (*HPMHOOK_pre_pc_getzeny) (struct map_session_data **sd, int *zeny, enum e_log_pick_type *type, struct map_session_data **tsd);
typedef int (*HPMHOOK_post_pc_getzeny) (int retVal___, struct map_session_data *sd, int zeny, enum e_log_pick_type type, struct map_session_data *tsd);
typedef int (*HPMHOOK_pre_pc_delitem) (struct map_session_data **sd, int *n, int *amount, int *type, short *reason, e_log_pick_type *log_type);
@@ -6178,8 +6238,8 @@ typedef int (*HPMHOOK_pre_pc_bonus_addeff) (struct s_addeffect **effect, int *ma
typedef int (*HPMHOOK_post_pc_bonus_addeff) (int retVal___, struct s_addeffect *effect, int max, enum sc_type id, int16 rate, int16 arrow_rate, uint8 flag, uint16 duration);
typedef int (*HPMHOOK_pre_pc_bonus_addeff_onskill) (struct s_addeffectonskill **effect, int *max, enum sc_type *id, short *rate, short *skill_id, unsigned char *target);
typedef int (*HPMHOOK_post_pc_bonus_addeff_onskill) (int retVal___, struct s_addeffectonskill *effect, int max, enum sc_type id, short rate, short skill_id, unsigned char target);
-typedef int (*HPMHOOK_pre_pc_bonus_item_drop) (struct s_add_drop **drop, const short *max, short *id, short *group, int *race, int *rate);
-typedef int (*HPMHOOK_post_pc_bonus_item_drop) (int retVal___, struct s_add_drop *drop, const short max, short id, short group, int race, int rate);
+typedef int (*HPMHOOK_pre_pc_bonus_item_drop) (struct s_add_drop **drop, const short *max, int *id, bool *is_group, int *race, int *rate);
+typedef int (*HPMHOOK_post_pc_bonus_item_drop) (int retVal___, struct s_add_drop *drop, const short max, int id, bool is_group, int race, int rate);
typedef void (*HPMHOOK_pre_pc_calcexp) (struct map_session_data **sd, uint64 **base_exp, uint64 **job_exp, struct block_list **src);
typedef void (*HPMHOOK_post_pc_calcexp) (struct map_session_data *sd, uint64 *base_exp, uint64 *job_exp, struct block_list *src);
typedef int (*HPMHOOK_pre_pc_respawn_timer) (int *tid, int64 *tick, int *id, intptr_t *data);
@@ -6274,6 +6334,8 @@ typedef bool (*HPMHOOK_pre_pc_isDeathPenaltyJob) (uint16 *job);
typedef bool (*HPMHOOK_post_pc_isDeathPenaltyJob) (bool retVal___, uint16 job);
typedef bool (*HPMHOOK_pre_pc_has_second_costume) (struct map_session_data **sd);
typedef bool (*HPMHOOK_post_pc_has_second_costume) (bool retVal___, struct map_session_data *sd);
+typedef bool (*HPMHOOK_pre_pc_expandInventory) (struct map_session_data **sd, int *adjustSize);
+typedef bool (*HPMHOOK_post_pc_expandInventory) (bool retVal___, struct map_session_data *sd, int adjustSize);
#endif // MAP_PC_H
#ifdef MAP_NPC_H /* libpcre */
typedef pcre* (*HPMHOOK_pre_libpcre_compile) (const char **pattern, int *options, const char ***errptr, int **erroffset, const unsigned char **tableptr);
@@ -6468,6 +6530,8 @@ typedef bool (*HPMHOOK_pre_quest_questinfo_validate_homunculus_type) (struct map
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 bool (*HPMHOOK_pre_quest_questinfo_validate_mercenary_class) (struct map_session_data **sd, struct questinfo **qi);
+typedef bool (*HPMHOOK_post_quest_questinfo_validate_mercenary_class) (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
@@ -7186,6 +7250,8 @@ typedef int (*HPMHOOK_pre_skill_cell_overlap) (struct block_list **bl, va_list a
typedef int (*HPMHOOK_post_skill_cell_overlap) (int retVal___, struct block_list *bl, va_list ap);
typedef int (*HPMHOOK_pre_skill_timerskill) (int *tid, int64 *tick, int *id, intptr_t *data);
typedef int (*HPMHOOK_post_skill_timerskill) (int retVal___, int tid, int64 tick, int id, intptr_t data);
+typedef void (*HPMHOOK_pre_skill_trap_do_splash) (struct block_list **bl, uint16 *skill_id, uint16 *skill_lv, int *bl_flag, int64 *tick);
+typedef void (*HPMHOOK_post_skill_trap_do_splash) (struct block_list *bl, uint16 skill_id, uint16 skill_lv, int bl_flag, int64 tick);
typedef int (*HPMHOOK_pre_skill_trap_splash) (struct block_list **bl, va_list ap);
typedef int (*HPMHOOK_post_skill_trap_splash) (int retVal___, struct block_list *bl, va_list ap);
typedef int (*HPMHOOK_pre_skill_check_condition_mercenary) (struct block_list **bl, int *skill_id, int *lv, int *type);
@@ -7432,12 +7498,16 @@ typedef int (*HPMHOOK_pre_sockt_realloc_fifo) (int *fd, unsigned int *rfifo_size
typedef int (*HPMHOOK_post_sockt_realloc_fifo) (int retVal___, int fd, unsigned int rfifo_size, unsigned int wfifo_size);
typedef int (*HPMHOOK_pre_sockt_realloc_writefifo) (int *fd, size_t *addition);
typedef int (*HPMHOOK_post_sockt_realloc_writefifo) (int retVal___, int fd, size_t addition);
-typedef int (*HPMHOOK_pre_sockt_wfifoset) (int *fd, size_t *len);
-typedef int (*HPMHOOK_post_sockt_wfifoset) (int retVal___, int fd, size_t len);
+typedef int (*HPMHOOK_pre_sockt_wfifoset) (int *fd, size_t *len, bool *validate);
+typedef int (*HPMHOOK_post_sockt_wfifoset) (int retVal___, int fd, size_t len, bool validate);
+typedef void (*HPMHOOK_pre_sockt_wfifohead) (int *fd, size_t *len);
+typedef void (*HPMHOOK_post_sockt_wfifohead) (int fd, size_t len);
typedef int (*HPMHOOK_pre_sockt_rfifoskip) (int *fd, size_t *len);
typedef int (*HPMHOOK_post_sockt_rfifoskip) (int retVal___, int fd, size_t len);
typedef void (*HPMHOOK_pre_sockt_close) (int *fd);
typedef void (*HPMHOOK_post_sockt_close) (int fd);
+typedef void (*HPMHOOK_pre_sockt_validateWfifo) (int *fd, size_t *len);
+typedef void (*HPMHOOK_post_sockt_validateWfifo) (int fd, size_t len);
typedef bool (*HPMHOOK_pre_sockt_session_is_valid) (int *fd);
typedef bool (*HPMHOOK_post_sockt_session_is_valid) (bool retVal___, int fd);
typedef bool (*HPMHOOK_pre_sockt_session_is_active) (int *fd);
@@ -7562,12 +7632,12 @@ typedef int (*HPMHOOK_pre_status_charge) (struct block_list **bl, int64 *hp, int
typedef int (*HPMHOOK_post_status_charge) (int retVal___, struct block_list *bl, int64 hp, int64 sp);
typedef int (*HPMHOOK_pre_status_percent_change) (struct block_list **src, struct block_list **target, signed char *hp_rate, signed char *sp_rate, int *flag);
typedef int (*HPMHOOK_post_status_percent_change) (int retVal___, struct block_list *src, struct block_list *target, signed char hp_rate, signed char sp_rate, int flag);
-typedef int (*HPMHOOK_pre_status_set_hp) (struct block_list **bl, unsigned int *hp, int *flag);
-typedef int (*HPMHOOK_post_status_set_hp) (int retVal___, struct block_list *bl, unsigned int hp, int flag);
-typedef int (*HPMHOOK_pre_status_set_sp) (struct block_list **bl, unsigned int *sp, int *flag);
-typedef int (*HPMHOOK_post_status_set_sp) (int retVal___, struct block_list *bl, unsigned int sp, int flag);
-typedef int (*HPMHOOK_pre_status_heal) (struct block_list **bl, int64 *hp, int64 *sp, int *flag);
-typedef int (*HPMHOOK_post_status_heal) (int retVal___, struct block_list *bl, int64 hp, int64 sp, int flag);
+typedef int (*HPMHOOK_pre_status_set_hp) (struct block_list **bl, unsigned int *hp, enum status_heal_flag *flag);
+typedef int (*HPMHOOK_post_status_set_hp) (int retVal___, struct block_list *bl, unsigned int hp, enum status_heal_flag flag);
+typedef int (*HPMHOOK_pre_status_set_sp) (struct block_list **bl, unsigned int *sp, enum status_heal_flag *flag);
+typedef int (*HPMHOOK_post_status_set_sp) (int retVal___, struct block_list *bl, unsigned int sp, enum status_heal_flag flag);
+typedef int (*HPMHOOK_pre_status_heal) (struct block_list **bl, int64 *hp, int64 *sp, enum status_heal_flag *flag);
+typedef int (*HPMHOOK_post_status_heal) (int retVal___, struct block_list *bl, int64 hp, int64 sp, enum status_heal_flag flag);
typedef int (*HPMHOOK_pre_status_revive) (struct block_list **bl, unsigned char *per_hp, unsigned char *per_sp);
typedef int (*HPMHOOK_post_status_revive) (int retVal___, struct block_list *bl, unsigned char per_hp, unsigned char per_sp);
typedef int (*HPMHOOK_pre_status_fixed_revive) (struct block_list **bl, unsigned int *per_hp, unsigned int *per_sp);
@@ -7710,6 +7780,10 @@ typedef unsigned int (*HPMHOOK_pre_status_get_base_maxhp) (const struct map_sess
typedef unsigned int (*HPMHOOK_post_status_get_base_maxhp) (unsigned int retVal___, const struct map_session_data *sd, const struct status_data *st);
typedef unsigned int (*HPMHOOK_pre_status_get_base_maxsp) (const struct map_session_data **sd, const struct status_data **st);
typedef unsigned int (*HPMHOOK_post_status_get_base_maxsp) (unsigned int retVal___, const struct map_session_data *sd, const struct status_data *st);
+typedef unsigned int (*HPMHOOK_pre_status_get_restart_hp) (const struct map_session_data **sd, const struct status_data **st);
+typedef unsigned int (*HPMHOOK_post_status_get_restart_hp) (unsigned int retVal___, const struct map_session_data *sd, const struct status_data *st);
+typedef unsigned int (*HPMHOOK_pre_status_get_restart_sp) (const struct map_session_data **sd, const struct status_data **st);
+typedef unsigned int (*HPMHOOK_post_status_get_restart_sp) (unsigned int retVal___, const struct map_session_data *sd, const struct status_data *st);
typedef int (*HPMHOOK_pre_status_calc_npc_) (struct npc_data **nd, enum e_status_calc_opt *opt);
typedef int (*HPMHOOK_post_status_calc_npc_) (int retVal___, struct npc_data *nd, enum e_status_calc_opt opt);
typedef unsigned short (*HPMHOOK_pre_status_calc_str) (struct block_list **bl, struct status_change **sc, int *str);
@@ -8038,8 +8112,8 @@ typedef uint8 (*HPMHOOK_pre_unit_getdir) (struct block_list **bl);
typedef uint8 (*HPMHOOK_post_unit_getdir) (uint8 retVal___, struct block_list *bl);
typedef int (*HPMHOOK_pre_unit_blown) (struct block_list **bl, int *dx, int *dy, int *count, int *flag);
typedef int (*HPMHOOK_post_unit_blown) (int retVal___, struct block_list *bl, int dx, int dy, int count, int flag);
-typedef int (*HPMHOOK_pre_unit_warp) (struct block_list **bl, short *m, short *x, short *y, clr_type *type);
-typedef int (*HPMHOOK_post_unit_warp) (int retVal___, struct block_list *bl, short m, short x, short y, clr_type type);
+typedef int (*HPMHOOK_pre_unit_warp) (struct block_list **bl, short *m, short *x, short *y, enum clr_type *type);
+typedef int (*HPMHOOK_post_unit_warp) (int retVal___, struct block_list *bl, short m, short x, short y, enum clr_type type);
typedef int (*HPMHOOK_pre_unit_stop_walking) (struct block_list **bl, int *type);
typedef int (*HPMHOOK_post_unit_stop_walking) (int retVal___, struct block_list *bl, int type);
typedef int (*HPMHOOK_pre_unit_skilluse_id) (struct block_list **src, int *target_id, uint16 *skill_id, uint16 *skill_lv);
@@ -8090,14 +8164,14 @@ typedef int (*HPMHOOK_pre_unit_fixdamage) (struct block_list **src, struct block
typedef int (*HPMHOOK_post_unit_fixdamage) (int retVal___, struct block_list *src, struct block_list *target, int sdelay, int ddelay, int64 damage, short div, unsigned char type, int64 damage2);
typedef int (*HPMHOOK_pre_unit_changeviewsize) (struct block_list **bl, short *size);
typedef int (*HPMHOOK_post_unit_changeviewsize) (int retVal___, struct block_list *bl, short size);
-typedef int (*HPMHOOK_pre_unit_remove_map) (struct block_list **bl, clr_type *clrtype, const char **file, int *line, const char **func);
-typedef int (*HPMHOOK_post_unit_remove_map) (int retVal___, struct block_list *bl, clr_type clrtype, const char *file, int line, const char *func);
-typedef void (*HPMHOOK_pre_unit_remove_map_pc) (struct map_session_data **sd, clr_type *clrtype);
-typedef void (*HPMHOOK_post_unit_remove_map_pc) (struct map_session_data *sd, clr_type clrtype);
+typedef int (*HPMHOOK_pre_unit_remove_map) (struct block_list **bl, enum clr_type *clrtype, const char **file, int *line, const char **func);
+typedef int (*HPMHOOK_post_unit_remove_map) (int retVal___, struct block_list *bl, enum clr_type clrtype, const char *file, int line, const char *func);
+typedef void (*HPMHOOK_pre_unit_remove_map_pc) (struct map_session_data **sd, enum clr_type *clrtype);
+typedef void (*HPMHOOK_post_unit_remove_map_pc) (struct map_session_data *sd, enum clr_type clrtype);
typedef void (*HPMHOOK_pre_unit_free_pc) (struct map_session_data **sd);
typedef void (*HPMHOOK_post_unit_free_pc) (struct map_session_data *sd);
-typedef int (*HPMHOOK_pre_unit_free) (struct block_list **bl, clr_type *clrtype);
-typedef int (*HPMHOOK_post_unit_free) (int retVal___, struct block_list *bl, clr_type clrtype);
+typedef int (*HPMHOOK_pre_unit_free) (struct block_list **bl, enum clr_type *clrtype);
+typedef int (*HPMHOOK_post_unit_free) (int retVal___, struct block_list *bl, enum clr_type clrtype);
#endif // MAP_UNIT_H
#ifdef MAP_VENDING_H /* vending */
typedef void (*HPMHOOK_pre_vending_init) (bool *minimal);
diff --git a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc
index 2b0291453..3bbfc8670 100644
--- a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc
@@ -90,8 +90,8 @@ struct {
struct HPMHookPoint *HP_chr_count_users_post;
struct HPMHookPoint *HP_chr_mmo_char_tobuf_pre;
struct HPMHookPoint *HP_chr_mmo_char_tobuf_post;
- struct HPMHookPoint *HP_chr_mmo_char_send099d_pre;
- struct HPMHookPoint *HP_chr_mmo_char_send099d_post;
+ struct HPMHookPoint *HP_chr_send_HC_ACK_CHARINFO_PER_PAGE_pre;
+ struct HPMHookPoint *HP_chr_send_HC_ACK_CHARINFO_PER_PAGE_post;
struct HPMHookPoint *HP_chr_mmo_char_send_ban_list_pre;
struct HPMHookPoint *HP_chr_mmo_char_send_ban_list_post;
struct HPMHookPoint *HP_chr_mmo_char_send_slots_info_pre;
@@ -1322,6 +1322,14 @@ struct {
struct HPMHookPoint *HP_mutex_cond_broadcast_post;
struct HPMHookPoint *HP_nullpo_assert_report_pre;
struct HPMHookPoint *HP_nullpo_assert_report_post;
+ struct HPMHookPoint *HP_packets_init_pre;
+ struct HPMHookPoint *HP_packets_init_post;
+ struct HPMHookPoint *HP_packets_final_pre;
+ struct HPMHookPoint *HP_packets_final_post;
+ struct HPMHookPoint *HP_packets_addLens_pre;
+ struct HPMHookPoint *HP_packets_addLens_post;
+ struct HPMHookPoint *HP_packets_addLen_pre;
+ struct HPMHookPoint *HP_packets_addLen_post;
struct HPMHookPoint *HP_pincode_handle_pre;
struct HPMHookPoint *HP_pincode_handle_post;
struct HPMHookPoint *HP_pincode_decrypt_pre;
@@ -1396,10 +1404,14 @@ struct {
struct HPMHookPoint *HP_sockt_realloc_writefifo_post;
struct HPMHookPoint *HP_sockt_wfifoset_pre;
struct HPMHookPoint *HP_sockt_wfifoset_post;
+ struct HPMHookPoint *HP_sockt_wfifohead_pre;
+ struct HPMHookPoint *HP_sockt_wfifohead_post;
struct HPMHookPoint *HP_sockt_rfifoskip_pre;
struct HPMHookPoint *HP_sockt_rfifoskip_post;
struct HPMHookPoint *HP_sockt_close_pre;
struct HPMHookPoint *HP_sockt_close_post;
+ struct HPMHookPoint *HP_sockt_validateWfifo_pre;
+ struct HPMHookPoint *HP_sockt_validateWfifo_post;
struct HPMHookPoint *HP_sockt_session_is_valid_pre;
struct HPMHookPoint *HP_sockt_session_is_valid_post;
struct HPMHookPoint *HP_sockt_session_is_active_pre;
@@ -1713,8 +1725,8 @@ struct {
int HP_chr_count_users_post;
int HP_chr_mmo_char_tobuf_pre;
int HP_chr_mmo_char_tobuf_post;
- int HP_chr_mmo_char_send099d_pre;
- int HP_chr_mmo_char_send099d_post;
+ int HP_chr_send_HC_ACK_CHARINFO_PER_PAGE_pre;
+ int HP_chr_send_HC_ACK_CHARINFO_PER_PAGE_post;
int HP_chr_mmo_char_send_ban_list_pre;
int HP_chr_mmo_char_send_ban_list_post;
int HP_chr_mmo_char_send_slots_info_pre;
@@ -2945,6 +2957,14 @@ struct {
int HP_mutex_cond_broadcast_post;
int HP_nullpo_assert_report_pre;
int HP_nullpo_assert_report_post;
+ int HP_packets_init_pre;
+ int HP_packets_init_post;
+ int HP_packets_final_pre;
+ int HP_packets_final_post;
+ int HP_packets_addLens_pre;
+ int HP_packets_addLens_post;
+ int HP_packets_addLen_pre;
+ int HP_packets_addLen_post;
int HP_pincode_handle_pre;
int HP_pincode_handle_post;
int HP_pincode_decrypt_pre;
@@ -3019,10 +3039,14 @@ struct {
int HP_sockt_realloc_writefifo_post;
int HP_sockt_wfifoset_pre;
int HP_sockt_wfifoset_post;
+ int HP_sockt_wfifohead_pre;
+ int HP_sockt_wfifohead_post;
int HP_sockt_rfifoskip_pre;
int HP_sockt_rfifoskip_post;
int HP_sockt_close_pre;
int HP_sockt_close_post;
+ int HP_sockt_validateWfifo_pre;
+ int HP_sockt_validateWfifo_post;
int HP_sockt_session_is_valid_pre;
int HP_sockt_session_is_valid_post;
int HP_sockt_session_is_active_pre;
@@ -3301,6 +3325,7 @@ struct {
struct md5_interface md5;
struct mutex_interface mutex;
struct nullpo_interface nullpo;
+ struct packets_interface packets;
struct pincode_interface pincode;
struct rnd_interface rnd;
struct showmsg_interface showmsg;
diff --git a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc
index cb6ae1bb8..96f210386 100644
--- a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc
@@ -60,7 +60,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(chr->divorce_char_sql, HP_chr_divorce_char_sql) },
{ HP_POP(chr->count_users, HP_chr_count_users) },
{ HP_POP(chr->mmo_char_tobuf, HP_chr_mmo_char_tobuf) },
- { HP_POP(chr->mmo_char_send099d, HP_chr_mmo_char_send099d) },
+ { HP_POP(chr->send_HC_ACK_CHARINFO_PER_PAGE, HP_chr_send_HC_ACK_CHARINFO_PER_PAGE) },
{ HP_POP(chr->mmo_char_send_ban_list, HP_chr_mmo_char_send_ban_list) },
{ HP_POP(chr->mmo_char_send_slots_info, HP_chr_mmo_char_send_slots_info) },
{ HP_POP(chr->mmo_char_send_characters, HP_chr_mmo_char_send_characters) },
@@ -703,6 +703,11 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(mutex->cond_broadcast, HP_mutex_cond_broadcast) },
/* nullpo_interface */
{ HP_POP(nullpo->assert_report, HP_nullpo_assert_report) },
+/* packets_interface */
+ { HP_POP(packets->init, HP_packets_init) },
+ { HP_POP(packets->final, HP_packets_final) },
+ { HP_POP(packets->addLens, HP_packets_addLens) },
+ { HP_POP(packets->addLen, HP_packets_addLen) },
/* pincode_interface */
{ HP_POP(pincode->handle, HP_pincode_handle) },
{ HP_POP(pincode->decrypt, HP_pincode_decrypt) },
@@ -744,8 +749,10 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(sockt->realloc_fifo, HP_sockt_realloc_fifo) },
{ HP_POP(sockt->realloc_writefifo, HP_sockt_realloc_writefifo) },
{ HP_POP(sockt->wfifoset, HP_sockt_wfifoset) },
+ { HP_POP(sockt->wfifohead, HP_sockt_wfifohead) },
{ HP_POP(sockt->rfifoskip, HP_sockt_rfifoskip) },
{ HP_POP(sockt->close, HP_sockt_close) },
+ { HP_POP(sockt->validateWfifo, HP_sockt_validateWfifo) },
{ HP_POP(sockt->session_is_valid, HP_sockt_session_is_valid) },
{ HP_POP(sockt->session_is_active, HP_sockt_session_is_active) },
{ HP_POP(sockt->flush, HP_sockt_flush) },
diff --git a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc
index 767c7d24e..dc0256ff3 100644
--- a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc
@@ -609,15 +609,15 @@ int HP_chr_mmo_gender(const struct char_session_data *sd, const struct mmo_chars
}
return retVal___;
}
-int HP_chr_mmo_chars_fromsql(struct char_session_data *sd, uint8 *buf) {
+int HP_chr_mmo_chars_fromsql(struct char_session_data *sd, uint8 *buf, int *count) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_chr_mmo_chars_fromsql_pre > 0) {
- int (*preHookFunc) (struct char_session_data **sd, uint8 **buf);
+ int (*preHookFunc) (struct char_session_data **sd, uint8 **buf, int **count);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_chars_fromsql_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_chr_mmo_chars_fromsql_pre[hIndex].func;
- retVal___ = preHookFunc(&sd, &buf);
+ retVal___ = preHookFunc(&sd, &buf, &count);
}
if (*HPMforce_return) {
*HPMforce_return = false;
@@ -625,13 +625,13 @@ int HP_chr_mmo_chars_fromsql(struct char_session_data *sd, uint8 *buf) {
}
}
{
- retVal___ = HPMHooks.source.chr.mmo_chars_fromsql(sd, buf);
+ retVal___ = HPMHooks.source.chr.mmo_chars_fromsql(sd, buf, count);
}
if (HPMHooks.count.HP_chr_mmo_chars_fromsql_post > 0) {
- int (*postHookFunc) (int retVal___, struct char_session_data *sd, uint8 *buf);
+ int (*postHookFunc) (int retVal___, struct char_session_data *sd, uint8 *buf, int *count);
for (hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_chars_fromsql_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_chr_mmo_chars_fromsql_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, sd, buf);
+ retVal___ = postHookFunc(retVal___, sd, buf, count);
}
}
return retVal___;
@@ -906,13 +906,13 @@ int HP_chr_mmo_char_tobuf(uint8 *buffer, struct mmo_charstatus *p) {
}
return retVal___;
}
-void HP_chr_mmo_char_send099d(int fd, struct char_session_data *sd) {
+void HP_chr_send_HC_ACK_CHARINFO_PER_PAGE(int fd, struct char_session_data *sd) {
int hIndex = 0;
- if (HPMHooks.count.HP_chr_mmo_char_send099d_pre > 0) {
+ if (HPMHooks.count.HP_chr_send_HC_ACK_CHARINFO_PER_PAGE_pre > 0) {
void (*preHookFunc) (int *fd, struct char_session_data **sd);
*HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_send099d_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_chr_mmo_char_send099d_pre[hIndex].func;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_HC_ACK_CHARINFO_PER_PAGE_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_chr_send_HC_ACK_CHARINFO_PER_PAGE_pre[hIndex].func;
preHookFunc(&fd, &sd);
}
if (*HPMforce_return) {
@@ -921,12 +921,12 @@ void HP_chr_mmo_char_send099d(int fd, struct char_session_data *sd) {
}
}
{
- HPMHooks.source.chr.mmo_char_send099d(fd, sd);
+ HPMHooks.source.chr.send_HC_ACK_CHARINFO_PER_PAGE(fd, sd);
}
- if (HPMHooks.count.HP_chr_mmo_char_send099d_post > 0) {
+ if (HPMHooks.count.HP_chr_send_HC_ACK_CHARINFO_PER_PAGE_post > 0) {
void (*postHookFunc) (int fd, struct char_session_data *sd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_send099d_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_chr_mmo_char_send099d_post[hIndex].func;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_HC_ACK_CHARINFO_PER_PAGE_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_chr_send_HC_ACK_CHARINFO_PER_PAGE_post[hIndex].func;
postHookFunc(fd, sd);
}
}
@@ -17357,6 +17357,111 @@ void HP_nullpo_assert_report(const char *file, int line, const char *func, const
}
return;
}
+/* packets_interface */
+void HP_packets_init(void) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_packets_init_pre > 0) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_init_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_packets_init_pre[hIndex].func;
+ preHookFunc();
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.packets.init();
+ }
+ if (HPMHooks.count.HP_packets_init_post > 0) {
+ void (*postHookFunc) (void);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_init_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_packets_init_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_packets_final(void) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_packets_final_pre > 0) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_final_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_packets_final_pre[hIndex].func;
+ preHookFunc();
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.packets.final();
+ }
+ if (HPMHooks.count.HP_packets_final_post > 0) {
+ void (*postHookFunc) (void);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_final_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_packets_final_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_packets_addLens(void) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_packets_addLens_pre > 0) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_addLens_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_packets_addLens_pre[hIndex].func;
+ preHookFunc();
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.packets.addLens();
+ }
+ if (HPMHooks.count.HP_packets_addLens_post > 0) {
+ void (*postHookFunc) (void);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_addLens_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_packets_addLens_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_packets_addLen(int id, int len) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_packets_addLen_pre > 0) {
+ void (*preHookFunc) (int *id, int *len);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_addLen_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_packets_addLen_pre[hIndex].func;
+ preHookFunc(&id, &len);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.packets.addLen(id, len);
+ }
+ if (HPMHooks.count.HP_packets_addLen_post > 0) {
+ void (*postHookFunc) (int id, int len);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_addLen_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_packets_addLen_post[hIndex].func;
+ postHookFunc(id, len);
+ }
+ }
+ return;
+}
/* pincode_interface */
void HP_pincode_handle(int fd, struct char_session_data *sd) {
int hIndex = 0;
@@ -18317,15 +18422,15 @@ int HP_sockt_realloc_writefifo(int fd, size_t addition) {
}
return retVal___;
}
-int HP_sockt_wfifoset(int fd, size_t len) {
+int HP_sockt_wfifoset(int fd, size_t len, bool validate) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_sockt_wfifoset_pre > 0) {
- int (*preHookFunc) (int *fd, size_t *len);
+ int (*preHookFunc) (int *fd, size_t *len, bool *validate);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_wfifoset_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_sockt_wfifoset_pre[hIndex].func;
- retVal___ = preHookFunc(&fd, &len);
+ retVal___ = preHookFunc(&fd, &len, &validate);
}
if (*HPMforce_return) {
*HPMforce_return = false;
@@ -18333,17 +18438,43 @@ int HP_sockt_wfifoset(int fd, size_t len) {
}
}
{
- retVal___ = HPMHooks.source.sockt.wfifoset(fd, len);
+ retVal___ = HPMHooks.source.sockt.wfifoset(fd, len, validate);
}
if (HPMHooks.count.HP_sockt_wfifoset_post > 0) {
- int (*postHookFunc) (int retVal___, int fd, size_t len);
+ int (*postHookFunc) (int retVal___, int fd, size_t len, bool validate);
for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_wfifoset_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_sockt_wfifoset_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, fd, len);
+ retVal___ = postHookFunc(retVal___, fd, len, validate);
}
}
return retVal___;
}
+void HP_sockt_wfifohead(int fd, size_t len) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_sockt_wfifohead_pre > 0) {
+ void (*preHookFunc) (int *fd, size_t *len);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_wfifohead_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_sockt_wfifohead_pre[hIndex].func;
+ preHookFunc(&fd, &len);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.sockt.wfifohead(fd, len);
+ }
+ if (HPMHooks.count.HP_sockt_wfifohead_post > 0) {
+ void (*postHookFunc) (int fd, size_t len);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_wfifohead_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_sockt_wfifohead_post[hIndex].func;
+ postHookFunc(fd, len);
+ }
+ }
+ return;
+}
int HP_sockt_rfifoskip(int fd, size_t len) {
int hIndex = 0;
int retVal___ = 0;
@@ -18397,6 +18528,32 @@ void HP_sockt_close(int fd) {
}
return;
}
+void HP_sockt_validateWfifo(int fd, size_t len) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_sockt_validateWfifo_pre > 0) {
+ void (*preHookFunc) (int *fd, size_t *len);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_validateWfifo_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_sockt_validateWfifo_pre[hIndex].func;
+ preHookFunc(&fd, &len);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.sockt.validateWfifo(fd, len);
+ }
+ if (HPMHooks.count.HP_sockt_validateWfifo_post > 0) {
+ void (*postHookFunc) (int fd, size_t len);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_validateWfifo_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_sockt_validateWfifo_post[hIndex].func;
+ postHookFunc(fd, len);
+ }
+ }
+ return;
+}
bool HP_sockt_session_is_valid(int fd) {
int hIndex = 0;
bool retVal___ = false;
diff --git a/src/plugins/HPMHooking/HPMHooking_char.sources.inc b/src/plugins/HPMHooking/HPMHooking_char.sources.inc
index 0d69cd755..7fb575afe 100644
--- a/src/plugins/HPMHooking/HPMHooking_char.sources.inc
+++ b/src/plugins/HPMHooking/HPMHooking_char.sources.inc
@@ -54,6 +54,7 @@ HPMHooks.source.mapindex = *mapindex;
HPMHooks.source.md5 = *md5;
HPMHooks.source.mutex = *mutex;
HPMHooks.source.nullpo = *nullpo;
+HPMHooks.source.packets = *packets;
HPMHooks.source.pincode = *pincode;
HPMHooks.source.rnd = *rnd;
HPMHooks.source.showmsg = *showmsg;
diff --git a/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc
index 5300ca3a6..20607bdfd 100644
--- a/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc
@@ -204,6 +204,10 @@ struct {
struct HPMHookPoint *HP_PRIV__lclif_parse_CA_SSO_LOGIN_REQ_post;
struct HPMHookPoint *HP_PRIV__lclif_parse_CA_LOGIN_OTP_pre;
struct HPMHookPoint *HP_PRIV__lclif_parse_CA_LOGIN_OTP_post;
+ struct HPMHookPoint *HP_PRIV__lclif_parse_CA_ACK_MOBILE_OTP_pre;
+ struct HPMHookPoint *HP_PRIV__lclif_parse_CA_ACK_MOBILE_OTP_post;
+ struct HPMHookPoint *HP_PRIV__lclif_parse_CA_OTP_CODE_pre;
+ struct HPMHookPoint *HP_PRIV__lclif_parse_CA_OTP_CODE_post;
struct HPMHookPoint *HP_PRIV__lclif_parse_CA_REQ_HASH_pre;
struct HPMHookPoint *HP_PRIV__lclif_parse_CA_REQ_HASH_post;
struct HPMHookPoint *HP_PRIV__lclif_parse_CA_CHARSERVERCONNECT_pre;
@@ -436,6 +440,8 @@ struct {
struct HPMHookPoint *HP_login_client_login_post;
struct HPMHookPoint *HP_login_client_login_otp_pre;
struct HPMHookPoint *HP_login_client_login_otp_post;
+ struct HPMHookPoint *HP_login_client_login_mobile_otp_request_pre;
+ struct HPMHookPoint *HP_login_client_login_mobile_otp_request_post;
struct HPMHookPoint *HP_login_char_server_connection_status_pre;
struct HPMHookPoint *HP_login_char_server_connection_status_post;
struct HPMHookPoint *HP_login_parse_request_connection_pre;
@@ -512,6 +518,14 @@ struct {
struct HPMHookPoint *HP_mutex_cond_broadcast_post;
struct HPMHookPoint *HP_nullpo_assert_report_pre;
struct HPMHookPoint *HP_nullpo_assert_report_post;
+ struct HPMHookPoint *HP_packets_init_pre;
+ struct HPMHookPoint *HP_packets_init_post;
+ struct HPMHookPoint *HP_packets_final_pre;
+ struct HPMHookPoint *HP_packets_final_post;
+ struct HPMHookPoint *HP_packets_addLens_pre;
+ struct HPMHookPoint *HP_packets_addLens_post;
+ struct HPMHookPoint *HP_packets_addLen_pre;
+ struct HPMHookPoint *HP_packets_addLen_post;
struct HPMHookPoint *HP_rnd_init_pre;
struct HPMHookPoint *HP_rnd_init_post;
struct HPMHookPoint *HP_rnd_final_pre;
@@ -554,10 +568,14 @@ struct {
struct HPMHookPoint *HP_sockt_realloc_writefifo_post;
struct HPMHookPoint *HP_sockt_wfifoset_pre;
struct HPMHookPoint *HP_sockt_wfifoset_post;
+ struct HPMHookPoint *HP_sockt_wfifohead_pre;
+ struct HPMHookPoint *HP_sockt_wfifohead_post;
struct HPMHookPoint *HP_sockt_rfifoskip_pre;
struct HPMHookPoint *HP_sockt_rfifoskip_post;
struct HPMHookPoint *HP_sockt_close_pre;
struct HPMHookPoint *HP_sockt_close_post;
+ struct HPMHookPoint *HP_sockt_validateWfifo_pre;
+ struct HPMHookPoint *HP_sockt_validateWfifo_post;
struct HPMHookPoint *HP_sockt_session_is_valid_pre;
struct HPMHookPoint *HP_sockt_session_is_valid_post;
struct HPMHookPoint *HP_sockt_session_is_active_pre;
@@ -985,6 +1003,10 @@ struct {
int HP_PRIV__lclif_parse_CA_SSO_LOGIN_REQ_post;
int HP_PRIV__lclif_parse_CA_LOGIN_OTP_pre;
int HP_PRIV__lclif_parse_CA_LOGIN_OTP_post;
+ int HP_PRIV__lclif_parse_CA_ACK_MOBILE_OTP_pre;
+ int HP_PRIV__lclif_parse_CA_ACK_MOBILE_OTP_post;
+ int HP_PRIV__lclif_parse_CA_OTP_CODE_pre;
+ int HP_PRIV__lclif_parse_CA_OTP_CODE_post;
int HP_PRIV__lclif_parse_CA_REQ_HASH_pre;
int HP_PRIV__lclif_parse_CA_REQ_HASH_post;
int HP_PRIV__lclif_parse_CA_CHARSERVERCONNECT_pre;
@@ -1217,6 +1239,8 @@ struct {
int HP_login_client_login_post;
int HP_login_client_login_otp_pre;
int HP_login_client_login_otp_post;
+ int HP_login_client_login_mobile_otp_request_pre;
+ int HP_login_client_login_mobile_otp_request_post;
int HP_login_char_server_connection_status_pre;
int HP_login_char_server_connection_status_post;
int HP_login_parse_request_connection_pre;
@@ -1293,6 +1317,14 @@ struct {
int HP_mutex_cond_broadcast_post;
int HP_nullpo_assert_report_pre;
int HP_nullpo_assert_report_post;
+ int HP_packets_init_pre;
+ int HP_packets_init_post;
+ int HP_packets_final_pre;
+ int HP_packets_final_post;
+ int HP_packets_addLens_pre;
+ int HP_packets_addLens_post;
+ int HP_packets_addLen_pre;
+ int HP_packets_addLen_post;
int HP_rnd_init_pre;
int HP_rnd_init_post;
int HP_rnd_final_pre;
@@ -1335,10 +1367,14 @@ struct {
int HP_sockt_realloc_writefifo_post;
int HP_sockt_wfifoset_pre;
int HP_sockt_wfifoset_post;
+ int HP_sockt_wfifohead_pre;
+ int HP_sockt_wfifohead_post;
int HP_sockt_rfifoskip_pre;
int HP_sockt_rfifoskip_post;
int HP_sockt_close_pre;
int HP_sockt_close_post;
+ int HP_sockt_validateWfifo_pre;
+ int HP_sockt_validateWfifo_post;
int HP_sockt_session_is_valid_pre;
int HP_sockt_session_is_valid_post;
int HP_sockt_session_is_active_pre;
@@ -1605,6 +1641,7 @@ struct {
struct md5_interface md5;
struct mutex_interface mutex;
struct nullpo_interface nullpo;
+ struct packets_interface packets;
struct rnd_interface rnd;
struct showmsg_interface showmsg;
struct socket_interface sockt;
diff --git a/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc
index 6eb2e8121..20667f45f 100644
--- a/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc
@@ -126,6 +126,8 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(lclif->p->parse_CA_LOGIN_HAN, HP_PRIV__lclif_parse_CA_LOGIN_HAN) },
{ HP_POP(lclif->p->parse_CA_SSO_LOGIN_REQ, HP_PRIV__lclif_parse_CA_SSO_LOGIN_REQ) },
{ HP_POP(lclif->p->parse_CA_LOGIN_OTP, HP_PRIV__lclif_parse_CA_LOGIN_OTP) },
+ { HP_POP(lclif->p->parse_CA_ACK_MOBILE_OTP, HP_PRIV__lclif_parse_CA_ACK_MOBILE_OTP) },
+ { HP_POP(lclif->p->parse_CA_OTP_CODE, HP_PRIV__lclif_parse_CA_OTP_CODE) },
{ HP_POP(lclif->p->parse_CA_REQ_HASH, HP_PRIV__lclif_parse_CA_REQ_HASH) },
{ HP_POP(lclif->p->parse_CA_CHARSERVERCONNECT, HP_PRIV__lclif_parse_CA_CHARSERVERCONNECT) },
/* libconfig_interface */
@@ -244,6 +246,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(login->auth_failed, HP_login_auth_failed) },
{ HP_POP(login->client_login, HP_login_client_login) },
{ HP_POP(login->client_login_otp, HP_login_client_login_otp) },
+ { HP_POP(login->client_login_mobile_otp_request, HP_login_client_login_mobile_otp_request) },
{ HP_POP(login->char_server_connection_status, HP_login_char_server_connection_status) },
{ HP_POP(login->parse_request_connection, HP_login_parse_request_connection) },
{ HP_POP(login->config_set_defaults, HP_login_config_set_defaults) },
@@ -286,6 +289,11 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(mutex->cond_broadcast, HP_mutex_cond_broadcast) },
/* nullpo_interface */
{ HP_POP(nullpo->assert_report, HP_nullpo_assert_report) },
+/* packets_interface */
+ { HP_POP(packets->init, HP_packets_init) },
+ { HP_POP(packets->final, HP_packets_final) },
+ { HP_POP(packets->addLens, HP_packets_addLens) },
+ { HP_POP(packets->addLen, HP_packets_addLen) },
/* rnd_interface */
{ HP_POP(rnd->init, HP_rnd_init) },
{ HP_POP(rnd->final, HP_rnd_final) },
@@ -310,8 +318,10 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(sockt->realloc_fifo, HP_sockt_realloc_fifo) },
{ HP_POP(sockt->realloc_writefifo, HP_sockt_realloc_writefifo) },
{ HP_POP(sockt->wfifoset, HP_sockt_wfifoset) },
+ { HP_POP(sockt->wfifohead, HP_sockt_wfifohead) },
{ HP_POP(sockt->rfifoskip, HP_sockt_rfifoskip) },
{ HP_POP(sockt->close, HP_sockt_close) },
+ { HP_POP(sockt->validateWfifo, HP_sockt_validateWfifo) },
{ HP_POP(sockt->session_is_valid, HP_sockt_session_is_valid) },
{ HP_POP(sockt->session_is_active, HP_sockt_session_is_active) },
{ HP_POP(sockt->flush, HP_sockt_flush) },
diff --git a/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc
index e432da70d..f556c621d 100644
--- a/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc
@@ -2409,6 +2409,60 @@ enum parsefunc_rcode HP_PRIV__lclif_parse_CA_LOGIN_OTP(int fd, struct login_sess
}
return retVal___;
}
+enum parsefunc_rcode HP_PRIV__lclif_parse_CA_ACK_MOBILE_OTP(int fd, struct login_session_data *sd) {
+ int hIndex = 0;
+ enum parsefunc_rcode retVal___ = PACKET_UNKNOWN;
+ if (HPMHooks.count.HP_PRIV__lclif_parse_CA_ACK_MOBILE_OTP_pre > 0) {
+ enum parsefunc_rcode (*preHookFunc) (int *fd, struct login_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_PRIV__lclif_parse_CA_ACK_MOBILE_OTP_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_PRIV__lclif_parse_CA_ACK_MOBILE_OTP_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.PRIV__lclif.parse_CA_ACK_MOBILE_OTP(fd, sd);
+ }
+ if (HPMHooks.count.HP_PRIV__lclif_parse_CA_ACK_MOBILE_OTP_post > 0) {
+ enum parsefunc_rcode (*postHookFunc) (enum parsefunc_rcode retVal___, int fd, struct login_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_PRIV__lclif_parse_CA_ACK_MOBILE_OTP_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_PRIV__lclif_parse_CA_ACK_MOBILE_OTP_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, fd, sd);
+ }
+ }
+ return retVal___;
+}
+enum parsefunc_rcode HP_PRIV__lclif_parse_CA_OTP_CODE(int fd, struct login_session_data *sd) {
+ int hIndex = 0;
+ enum parsefunc_rcode retVal___ = PACKET_UNKNOWN;
+ if (HPMHooks.count.HP_PRIV__lclif_parse_CA_OTP_CODE_pre > 0) {
+ enum parsefunc_rcode (*preHookFunc) (int *fd, struct login_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_PRIV__lclif_parse_CA_OTP_CODE_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_PRIV__lclif_parse_CA_OTP_CODE_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.PRIV__lclif.parse_CA_OTP_CODE(fd, sd);
+ }
+ if (HPMHooks.count.HP_PRIV__lclif_parse_CA_OTP_CODE_post > 0) {
+ enum parsefunc_rcode (*postHookFunc) (enum parsefunc_rcode retVal___, int fd, struct login_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_PRIV__lclif_parse_CA_OTP_CODE_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_PRIV__lclif_parse_CA_OTP_CODE_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, fd, sd);
+ }
+ }
+ return retVal___;
+}
enum parsefunc_rcode HP_PRIV__lclif_parse_CA_REQ_HASH(int fd, struct login_session_data *sd) {
int hIndex = 0;
enum parsefunc_rcode retVal___ = PACKET_UNKNOWN;
@@ -5521,6 +5575,32 @@ bool HP_login_client_login_otp(int fd, struct login_session_data *sd) {
}
return retVal___;
}
+void HP_login_client_login_mobile_otp_request(int fd, struct login_session_data *sd) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_login_client_login_mobile_otp_request_pre > 0) {
+ void (*preHookFunc) (int *fd, struct login_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_client_login_mobile_otp_request_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_login_client_login_mobile_otp_request_pre[hIndex].func;
+ preHookFunc(&fd, &sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.client_login_mobile_otp_request(fd, sd);
+ }
+ if (HPMHooks.count.HP_login_client_login_mobile_otp_request_post > 0) {
+ void (*postHookFunc) (int fd, struct login_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_client_login_mobile_otp_request_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_login_client_login_mobile_otp_request_post[hIndex].func;
+ postHookFunc(fd, sd);
+ }
+ }
+ return;
+}
void HP_login_char_server_connection_status(int fd, struct login_session_data *sd, uint8 status) {
int hIndex = 0;
if (HPMHooks.count.HP_login_char_server_connection_status_pre > 0) {
@@ -6532,6 +6612,111 @@ void HP_nullpo_assert_report(const char *file, int line, const char *func, const
}
return;
}
+/* packets_interface */
+void HP_packets_init(void) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_packets_init_pre > 0) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_init_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_packets_init_pre[hIndex].func;
+ preHookFunc();
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.packets.init();
+ }
+ if (HPMHooks.count.HP_packets_init_post > 0) {
+ void (*postHookFunc) (void);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_init_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_packets_init_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_packets_final(void) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_packets_final_pre > 0) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_final_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_packets_final_pre[hIndex].func;
+ preHookFunc();
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.packets.final();
+ }
+ if (HPMHooks.count.HP_packets_final_post > 0) {
+ void (*postHookFunc) (void);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_final_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_packets_final_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_packets_addLens(void) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_packets_addLens_pre > 0) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_addLens_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_packets_addLens_pre[hIndex].func;
+ preHookFunc();
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.packets.addLens();
+ }
+ if (HPMHooks.count.HP_packets_addLens_post > 0) {
+ void (*postHookFunc) (void);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_addLens_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_packets_addLens_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_packets_addLen(int id, int len) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_packets_addLen_pre > 0) {
+ void (*preHookFunc) (int *id, int *len);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_addLen_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_packets_addLen_pre[hIndex].func;
+ preHookFunc(&id, &len);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.packets.addLen(id, len);
+ }
+ if (HPMHooks.count.HP_packets_addLen_post > 0) {
+ void (*postHookFunc) (int id, int len);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_addLen_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_packets_addLen_post[hIndex].func;
+ postHookFunc(id, len);
+ }
+ }
+ return;
+}
/* rnd_interface */
void HP_rnd_init(void) {
int hIndex = 0;
@@ -7072,15 +7257,15 @@ int HP_sockt_realloc_writefifo(int fd, size_t addition) {
}
return retVal___;
}
-int HP_sockt_wfifoset(int fd, size_t len) {
+int HP_sockt_wfifoset(int fd, size_t len, bool validate) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_sockt_wfifoset_pre > 0) {
- int (*preHookFunc) (int *fd, size_t *len);
+ int (*preHookFunc) (int *fd, size_t *len, bool *validate);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_wfifoset_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_sockt_wfifoset_pre[hIndex].func;
- retVal___ = preHookFunc(&fd, &len);
+ retVal___ = preHookFunc(&fd, &len, &validate);
}
if (*HPMforce_return) {
*HPMforce_return = false;
@@ -7088,17 +7273,43 @@ int HP_sockt_wfifoset(int fd, size_t len) {
}
}
{
- retVal___ = HPMHooks.source.sockt.wfifoset(fd, len);
+ retVal___ = HPMHooks.source.sockt.wfifoset(fd, len, validate);
}
if (HPMHooks.count.HP_sockt_wfifoset_post > 0) {
- int (*postHookFunc) (int retVal___, int fd, size_t len);
+ int (*postHookFunc) (int retVal___, int fd, size_t len, bool validate);
for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_wfifoset_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_sockt_wfifoset_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, fd, len);
+ retVal___ = postHookFunc(retVal___, fd, len, validate);
}
}
return retVal___;
}
+void HP_sockt_wfifohead(int fd, size_t len) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_sockt_wfifohead_pre > 0) {
+ void (*preHookFunc) (int *fd, size_t *len);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_wfifohead_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_sockt_wfifohead_pre[hIndex].func;
+ preHookFunc(&fd, &len);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.sockt.wfifohead(fd, len);
+ }
+ if (HPMHooks.count.HP_sockt_wfifohead_post > 0) {
+ void (*postHookFunc) (int fd, size_t len);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_wfifohead_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_sockt_wfifohead_post[hIndex].func;
+ postHookFunc(fd, len);
+ }
+ }
+ return;
+}
int HP_sockt_rfifoskip(int fd, size_t len) {
int hIndex = 0;
int retVal___ = 0;
@@ -7152,6 +7363,32 @@ void HP_sockt_close(int fd) {
}
return;
}
+void HP_sockt_validateWfifo(int fd, size_t len) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_sockt_validateWfifo_pre > 0) {
+ void (*preHookFunc) (int *fd, size_t *len);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_validateWfifo_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_sockt_validateWfifo_pre[hIndex].func;
+ preHookFunc(&fd, &len);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.sockt.validateWfifo(fd, len);
+ }
+ if (HPMHooks.count.HP_sockt_validateWfifo_post > 0) {
+ void (*postHookFunc) (int fd, size_t len);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_validateWfifo_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_sockt_validateWfifo_post[hIndex].func;
+ postHookFunc(fd, len);
+ }
+ }
+ return;
+}
bool HP_sockt_session_is_valid(int fd) {
int hIndex = 0;
bool retVal___ = false;
diff --git a/src/plugins/HPMHooking/HPMHooking_login.sources.inc b/src/plugins/HPMHooking/HPMHooking_login.sources.inc
index 78c506043..552aad578 100644
--- a/src/plugins/HPMHooking/HPMHooking_login.sources.inc
+++ b/src/plugins/HPMHooking/HPMHooking_login.sources.inc
@@ -42,6 +42,7 @@ HPMHooks.source.loginlog = *loginlog;
HPMHooks.source.md5 = *md5;
HPMHooks.source.mutex = *mutex;
HPMHooks.source.nullpo = *nullpo;
+HPMHooks.source.packets = *packets;
HPMHooks.source.rnd = *rnd;
HPMHooks.source.showmsg = *showmsg;
HPMHooks.source.sockt = *sockt;
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
index 8762975e1..d2c269bdd 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
@@ -136,6 +136,10 @@ struct {
struct HPMHookPoint *HP_achievement_check_title_post;
struct HPMHookPoint *HP_achievement_get_rewards_pre;
struct HPMHookPoint *HP_achievement_get_rewards_post;
+ struct HPMHookPoint *HP_achievement_get_rewards_buffs_pre;
+ struct HPMHookPoint *HP_achievement_get_rewards_buffs_post;
+ struct HPMHookPoint *HP_achievement_get_rewards_items_pre;
+ struct HPMHookPoint *HP_achievement_get_rewards_items_post;
struct HPMHookPoint *HP_atcommand_init_pre;
struct HPMHookPoint *HP_atcommand_init_post;
struct HPMHookPoint *HP_atcommand_final_pre;
@@ -232,6 +236,8 @@ struct {
struct HPMHookPoint *HP_battle_drain_post;
struct HPMHookPoint *HP_battle_reflect_damage_pre;
struct HPMHookPoint *HP_battle_reflect_damage_post;
+ struct HPMHookPoint *HP_battle_reflect_trap_pre;
+ struct HPMHookPoint *HP_battle_reflect_trap_post;
struct HPMHookPoint *HP_battle_attr_ratio_pre;
struct HPMHookPoint *HP_battle_attr_ratio_post;
struct HPMHookPoint *HP_battle_attr_fix_pre;
@@ -924,6 +930,18 @@ struct {
struct HPMHookPoint *HP_clif_cartList_post;
struct HPMHookPoint *HP_clif_cartItems_pre;
struct HPMHookPoint *HP_clif_cartItems_post;
+ struct HPMHookPoint *HP_clif_inventoryExpansionInfo_pre;
+ struct HPMHookPoint *HP_clif_inventoryExpansionInfo_post;
+ struct HPMHookPoint *HP_clif_inventoryExpandAck_pre;
+ struct HPMHookPoint *HP_clif_inventoryExpandAck_post;
+ struct HPMHookPoint *HP_clif_inventoryExpandResult_pre;
+ struct HPMHookPoint *HP_clif_inventoryExpandResult_post;
+ struct HPMHookPoint *HP_clif_pInventoryExpansion_pre;
+ struct HPMHookPoint *HP_clif_pInventoryExpansion_post;
+ struct HPMHookPoint *HP_clif_pInventoryExpansionConfirmed_pre;
+ struct HPMHookPoint *HP_clif_pInventoryExpansionConfirmed_post;
+ struct HPMHookPoint *HP_clif_pInventoryExpansionRejected_pre;
+ struct HPMHookPoint *HP_clif_pInventoryExpansionRejected_post;
struct HPMHookPoint *HP_clif_favorite_item_pre;
struct HPMHookPoint *HP_clif_favorite_item_post;
struct HPMHookPoint *HP_clif_clearcart_pre;
@@ -1104,6 +1122,10 @@ struct {
struct HPMHookPoint *HP_clif_specialeffect_single_post;
struct HPMHookPoint *HP_clif_specialeffect_value_pre;
struct HPMHookPoint *HP_clif_specialeffect_value_post;
+ struct HPMHookPoint *HP_clif_removeSpecialEffect_pre;
+ struct HPMHookPoint *HP_clif_removeSpecialEffect_post;
+ struct HPMHookPoint *HP_clif_removeSpecialEffect_single_pre;
+ struct HPMHookPoint *HP_clif_removeSpecialEffect_single_post;
struct HPMHookPoint *HP_clif_millenniumshield_pre;
struct HPMHookPoint *HP_clif_millenniumshield_post;
struct HPMHookPoint *HP_clif_spiritcharm_pre;
@@ -1154,6 +1176,8 @@ struct {
struct HPMHookPoint *HP_clif_messagecolor_self_post;
struct HPMHookPoint *HP_clif_messagecolor_pre;
struct HPMHookPoint *HP_clif_messagecolor_post;
+ struct HPMHookPoint *HP_clif_serviceMessageColor_pre;
+ struct HPMHookPoint *HP_clif_serviceMessageColor_post;
struct HPMHookPoint *HP_clif_disp_overhead_pre;
struct HPMHookPoint *HP_clif_disp_overhead_post;
struct HPMHookPoint *HP_clif_notify_playerchat_pre;
@@ -1708,8 +1732,14 @@ struct {
struct HPMHookPoint *HP_clif_pStatusUp_post;
struct HPMHookPoint *HP_clif_pSkillUp_pre;
struct HPMHookPoint *HP_clif_pSkillUp_post;
+ struct HPMHookPoint *HP_clif_useSkillToIdReal_pre;
+ struct HPMHookPoint *HP_clif_useSkillToIdReal_post;
struct HPMHookPoint *HP_clif_pUseSkillToId_pre;
struct HPMHookPoint *HP_clif_pUseSkillToId_post;
+ struct HPMHookPoint *HP_clif_pStartUseSkillToId_pre;
+ struct HPMHookPoint *HP_clif_pStartUseSkillToId_post;
+ struct HPMHookPoint *HP_clif_pStopUseSkillToId_pre;
+ struct HPMHookPoint *HP_clif_pStopUseSkillToId_post;
struct HPMHookPoint *HP_clif_pUseSkillToId_homun_pre;
struct HPMHookPoint *HP_clif_pUseSkillToId_homun_post;
struct HPMHookPoint *HP_clif_pUseSkillToId_mercenary_pre;
@@ -2208,6 +2238,18 @@ struct {
struct HPMHookPoint *HP_clif_party_dead_notification_post;
struct HPMHookPoint *HP_clif_pMemorialDungeonCommand_pre;
struct HPMHookPoint *HP_clif_pMemorialDungeonCommand_post;
+ struct HPMHookPoint *HP_clif_camera_showWindow_pre;
+ struct HPMHookPoint *HP_clif_camera_showWindow_post;
+ struct HPMHookPoint *HP_clif_camera_change_pre;
+ struct HPMHookPoint *HP_clif_camera_change_post;
+ struct HPMHookPoint *HP_clif_pCameraInfo_pre;
+ struct HPMHookPoint *HP_clif_pCameraInfo_post;
+ struct HPMHookPoint *HP_clif_item_preview_pre;
+ struct HPMHookPoint *HP_clif_item_preview_post;
+ struct HPMHookPoint *HP_clif_enchant_equipment_pre;
+ struct HPMHookPoint *HP_clif_enchant_equipment_post;
+ struct HPMHookPoint *HP_clif_pReqRemainTime_pre;
+ struct HPMHookPoint *HP_clif_pReqRemainTime_post;
struct HPMHookPoint *HP_cmdline_init_pre;
struct HPMHookPoint *HP_cmdline_init_post;
struct HPMHookPoint *HP_cmdline_final_pre;
@@ -3372,6 +3414,8 @@ struct {
struct HPMHookPoint *HP_map_zone_init_post;
struct HPMHookPoint *HP_map_zone_remove_pre;
struct HPMHookPoint *HP_map_zone_remove_post;
+ struct HPMHookPoint *HP_map_zone_remove_all_pre;
+ struct HPMHookPoint *HP_map_zone_remove_all_post;
struct HPMHookPoint *HP_map_zone_apply_pre;
struct HPMHookPoint *HP_map_zone_apply_post;
struct HPMHookPoint *HP_map_zone_change_pre;
@@ -4232,6 +4276,14 @@ struct {
struct HPMHookPoint *HP_npc_secure_timeout_timer_post;
struct HPMHookPoint *HP_nullpo_assert_report_pre;
struct HPMHookPoint *HP_nullpo_assert_report_post;
+ struct HPMHookPoint *HP_packets_init_pre;
+ struct HPMHookPoint *HP_packets_init_post;
+ struct HPMHookPoint *HP_packets_final_pre;
+ struct HPMHookPoint *HP_packets_final_post;
+ struct HPMHookPoint *HP_packets_addLens_pre;
+ struct HPMHookPoint *HP_packets_addLens_post;
+ struct HPMHookPoint *HP_packets_addLen_pre;
+ struct HPMHookPoint *HP_packets_addLen_post;
struct HPMHookPoint *HP_party_init_pre;
struct HPMHookPoint *HP_party_init_post;
struct HPMHookPoint *HP_party_final_pre;
@@ -4842,6 +4894,8 @@ struct {
struct HPMHookPoint *HP_pc_isDeathPenaltyJob_post;
struct HPMHookPoint *HP_pc_has_second_costume_pre;
struct HPMHookPoint *HP_pc_has_second_costume_post;
+ struct HPMHookPoint *HP_pc_expandInventory_pre;
+ struct HPMHookPoint *HP_pc_expandInventory_post;
struct HPMHookPoint *HP_libpcre_compile_pre;
struct HPMHookPoint *HP_libpcre_compile_post;
struct HPMHookPoint *HP_libpcre_study_pre;
@@ -4996,6 +5050,8 @@ struct {
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_validate_mercenary_class_pre;
+ struct HPMHookPoint *HP_quest_questinfo_validate_mercenary_class_post;
struct HPMHookPoint *HP_quest_questinfo_vector_clear_pre;
struct HPMHookPoint *HP_quest_questinfo_vector_clear_post;
struct HPMHookPoint *HP_rnd_init_pre;
@@ -5702,6 +5758,8 @@ struct {
struct HPMHookPoint *HP_skill_cell_overlap_post;
struct HPMHookPoint *HP_skill_timerskill_pre;
struct HPMHookPoint *HP_skill_timerskill_post;
+ struct HPMHookPoint *HP_skill_trap_do_splash_pre;
+ struct HPMHookPoint *HP_skill_trap_do_splash_post;
struct HPMHookPoint *HP_skill_trap_splash_pre;
struct HPMHookPoint *HP_skill_trap_splash_post;
struct HPMHookPoint *HP_skill_check_condition_mercenary_pre;
@@ -5948,10 +6006,14 @@ struct {
struct HPMHookPoint *HP_sockt_realloc_writefifo_post;
struct HPMHookPoint *HP_sockt_wfifoset_pre;
struct HPMHookPoint *HP_sockt_wfifoset_post;
+ struct HPMHookPoint *HP_sockt_wfifohead_pre;
+ struct HPMHookPoint *HP_sockt_wfifohead_post;
struct HPMHookPoint *HP_sockt_rfifoskip_pre;
struct HPMHookPoint *HP_sockt_rfifoskip_post;
struct HPMHookPoint *HP_sockt_close_pre;
struct HPMHookPoint *HP_sockt_close_post;
+ struct HPMHookPoint *HP_sockt_validateWfifo_pre;
+ struct HPMHookPoint *HP_sockt_validateWfifo_post;
struct HPMHookPoint *HP_sockt_session_is_valid_pre;
struct HPMHookPoint *HP_sockt_session_is_valid_post;
struct HPMHookPoint *HP_sockt_session_is_active_pre;
@@ -6220,6 +6282,10 @@ struct {
struct HPMHookPoint *HP_status_get_base_maxhp_post;
struct HPMHookPoint *HP_status_get_base_maxsp_pre;
struct HPMHookPoint *HP_status_get_base_maxsp_post;
+ struct HPMHookPoint *HP_status_get_restart_hp_pre;
+ struct HPMHookPoint *HP_status_get_restart_hp_post;
+ struct HPMHookPoint *HP_status_get_restart_sp_pre;
+ struct HPMHookPoint *HP_status_get_restart_sp_post;
struct HPMHookPoint *HP_status_calc_npc__pre;
struct HPMHookPoint *HP_status_calc_npc__post;
struct HPMHookPoint *HP_status_calc_str_pre;
@@ -6719,6 +6785,10 @@ struct {
int HP_achievement_check_title_post;
int HP_achievement_get_rewards_pre;
int HP_achievement_get_rewards_post;
+ int HP_achievement_get_rewards_buffs_pre;
+ int HP_achievement_get_rewards_buffs_post;
+ int HP_achievement_get_rewards_items_pre;
+ int HP_achievement_get_rewards_items_post;
int HP_atcommand_init_pre;
int HP_atcommand_init_post;
int HP_atcommand_final_pre;
@@ -6815,6 +6885,8 @@ struct {
int HP_battle_drain_post;
int HP_battle_reflect_damage_pre;
int HP_battle_reflect_damage_post;
+ int HP_battle_reflect_trap_pre;
+ int HP_battle_reflect_trap_post;
int HP_battle_attr_ratio_pre;
int HP_battle_attr_ratio_post;
int HP_battle_attr_fix_pre;
@@ -7507,6 +7579,18 @@ struct {
int HP_clif_cartList_post;
int HP_clif_cartItems_pre;
int HP_clif_cartItems_post;
+ int HP_clif_inventoryExpansionInfo_pre;
+ int HP_clif_inventoryExpansionInfo_post;
+ int HP_clif_inventoryExpandAck_pre;
+ int HP_clif_inventoryExpandAck_post;
+ int HP_clif_inventoryExpandResult_pre;
+ int HP_clif_inventoryExpandResult_post;
+ int HP_clif_pInventoryExpansion_pre;
+ int HP_clif_pInventoryExpansion_post;
+ int HP_clif_pInventoryExpansionConfirmed_pre;
+ int HP_clif_pInventoryExpansionConfirmed_post;
+ int HP_clif_pInventoryExpansionRejected_pre;
+ int HP_clif_pInventoryExpansionRejected_post;
int HP_clif_favorite_item_pre;
int HP_clif_favorite_item_post;
int HP_clif_clearcart_pre;
@@ -7687,6 +7771,10 @@ struct {
int HP_clif_specialeffect_single_post;
int HP_clif_specialeffect_value_pre;
int HP_clif_specialeffect_value_post;
+ int HP_clif_removeSpecialEffect_pre;
+ int HP_clif_removeSpecialEffect_post;
+ int HP_clif_removeSpecialEffect_single_pre;
+ int HP_clif_removeSpecialEffect_single_post;
int HP_clif_millenniumshield_pre;
int HP_clif_millenniumshield_post;
int HP_clif_spiritcharm_pre;
@@ -7737,6 +7825,8 @@ struct {
int HP_clif_messagecolor_self_post;
int HP_clif_messagecolor_pre;
int HP_clif_messagecolor_post;
+ int HP_clif_serviceMessageColor_pre;
+ int HP_clif_serviceMessageColor_post;
int HP_clif_disp_overhead_pre;
int HP_clif_disp_overhead_post;
int HP_clif_notify_playerchat_pre;
@@ -8291,8 +8381,14 @@ struct {
int HP_clif_pStatusUp_post;
int HP_clif_pSkillUp_pre;
int HP_clif_pSkillUp_post;
+ int HP_clif_useSkillToIdReal_pre;
+ int HP_clif_useSkillToIdReal_post;
int HP_clif_pUseSkillToId_pre;
int HP_clif_pUseSkillToId_post;
+ int HP_clif_pStartUseSkillToId_pre;
+ int HP_clif_pStartUseSkillToId_post;
+ int HP_clif_pStopUseSkillToId_pre;
+ int HP_clif_pStopUseSkillToId_post;
int HP_clif_pUseSkillToId_homun_pre;
int HP_clif_pUseSkillToId_homun_post;
int HP_clif_pUseSkillToId_mercenary_pre;
@@ -8791,6 +8887,18 @@ struct {
int HP_clif_party_dead_notification_post;
int HP_clif_pMemorialDungeonCommand_pre;
int HP_clif_pMemorialDungeonCommand_post;
+ int HP_clif_camera_showWindow_pre;
+ int HP_clif_camera_showWindow_post;
+ int HP_clif_camera_change_pre;
+ int HP_clif_camera_change_post;
+ int HP_clif_pCameraInfo_pre;
+ int HP_clif_pCameraInfo_post;
+ int HP_clif_item_preview_pre;
+ int HP_clif_item_preview_post;
+ int HP_clif_enchant_equipment_pre;
+ int HP_clif_enchant_equipment_post;
+ int HP_clif_pReqRemainTime_pre;
+ int HP_clif_pReqRemainTime_post;
int HP_cmdline_init_pre;
int HP_cmdline_init_post;
int HP_cmdline_final_pre;
@@ -9955,6 +10063,8 @@ struct {
int HP_map_zone_init_post;
int HP_map_zone_remove_pre;
int HP_map_zone_remove_post;
+ int HP_map_zone_remove_all_pre;
+ int HP_map_zone_remove_all_post;
int HP_map_zone_apply_pre;
int HP_map_zone_apply_post;
int HP_map_zone_change_pre;
@@ -10815,6 +10925,14 @@ struct {
int HP_npc_secure_timeout_timer_post;
int HP_nullpo_assert_report_pre;
int HP_nullpo_assert_report_post;
+ int HP_packets_init_pre;
+ int HP_packets_init_post;
+ int HP_packets_final_pre;
+ int HP_packets_final_post;
+ int HP_packets_addLens_pre;
+ int HP_packets_addLens_post;
+ int HP_packets_addLen_pre;
+ int HP_packets_addLen_post;
int HP_party_init_pre;
int HP_party_init_post;
int HP_party_final_pre;
@@ -11425,6 +11543,8 @@ struct {
int HP_pc_isDeathPenaltyJob_post;
int HP_pc_has_second_costume_pre;
int HP_pc_has_second_costume_post;
+ int HP_pc_expandInventory_pre;
+ int HP_pc_expandInventory_post;
int HP_libpcre_compile_pre;
int HP_libpcre_compile_post;
int HP_libpcre_study_pre;
@@ -11579,6 +11699,8 @@ struct {
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_validate_mercenary_class_pre;
+ int HP_quest_questinfo_validate_mercenary_class_post;
int HP_quest_questinfo_vector_clear_pre;
int HP_quest_questinfo_vector_clear_post;
int HP_rnd_init_pre;
@@ -12285,6 +12407,8 @@ struct {
int HP_skill_cell_overlap_post;
int HP_skill_timerskill_pre;
int HP_skill_timerskill_post;
+ int HP_skill_trap_do_splash_pre;
+ int HP_skill_trap_do_splash_post;
int HP_skill_trap_splash_pre;
int HP_skill_trap_splash_post;
int HP_skill_check_condition_mercenary_pre;
@@ -12531,10 +12655,14 @@ struct {
int HP_sockt_realloc_writefifo_post;
int HP_sockt_wfifoset_pre;
int HP_sockt_wfifoset_post;
+ int HP_sockt_wfifohead_pre;
+ int HP_sockt_wfifohead_post;
int HP_sockt_rfifoskip_pre;
int HP_sockt_rfifoskip_post;
int HP_sockt_close_pre;
int HP_sockt_close_post;
+ int HP_sockt_validateWfifo_pre;
+ int HP_sockt_validateWfifo_post;
int HP_sockt_session_is_valid_pre;
int HP_sockt_session_is_valid_post;
int HP_sockt_session_is_active_pre;
@@ -12803,6 +12931,10 @@ struct {
int HP_status_get_base_maxhp_post;
int HP_status_get_base_maxsp_pre;
int HP_status_get_base_maxsp_post;
+ int HP_status_get_restart_hp_pre;
+ int HP_status_get_restart_hp_post;
+ int HP_status_get_restart_sp_pre;
+ int HP_status_get_restart_sp_post;
int HP_status_calc_npc__pre;
int HP_status_calc_npc__post;
int HP_status_calc_str_pre;
@@ -13232,6 +13364,7 @@ struct {
struct npc_chat_interface npc_chat;
struct npc_interface npc;
struct nullpo_interface nullpo;
+ struct packets_interface packets;
struct party_interface party;
struct path_interface path;
struct pc_groups_interface pcg;
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
index 2f3f1840f..050050ee1 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
@@ -83,6 +83,8 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(achievement->init_titles, HP_achievement_init_titles) },
{ HP_POP(achievement->check_title, HP_achievement_check_title) },
{ HP_POP(achievement->get_rewards, HP_achievement_get_rewards) },
+ { HP_POP(achievement->get_rewards_buffs, HP_achievement_get_rewards_buffs) },
+ { HP_POP(achievement->get_rewards_items, HP_achievement_get_rewards_items) },
/* atcommand_interface */
{ HP_POP(atcommand->init, HP_atcommand_init) },
{ HP_POP(atcommand->final, HP_atcommand_final) },
@@ -133,6 +135,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(battle->delay_damage, HP_battle_delay_damage) },
{ HP_POP(battle->drain, HP_battle_drain) },
{ HP_POP(battle->reflect_damage, HP_battle_reflect_damage) },
+ { HP_POP(battle->reflect_trap, HP_battle_reflect_trap) },
{ HP_POP(battle->attr_ratio, HP_battle_attr_ratio) },
{ HP_POP(battle->attr_fix, HP_battle_attr_fix) },
{ HP_POP(battle->calc_cardfix, HP_battle_calc_cardfix) },
@@ -486,6 +489,12 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->equipItems, HP_clif_equipItems) },
{ HP_POP(clif->cartList, HP_clif_cartList) },
{ HP_POP(clif->cartItems, HP_clif_cartItems) },
+ { HP_POP(clif->inventoryExpansionInfo, HP_clif_inventoryExpansionInfo) },
+ { HP_POP(clif->inventoryExpandAck, HP_clif_inventoryExpandAck) },
+ { HP_POP(clif->inventoryExpandResult, HP_clif_inventoryExpandResult) },
+ { HP_POP(clif->pInventoryExpansion, HP_clif_pInventoryExpansion) },
+ { HP_POP(clif->pInventoryExpansionConfirmed, HP_clif_pInventoryExpansionConfirmed) },
+ { HP_POP(clif->pInventoryExpansionRejected, HP_clif_pInventoryExpansionRejected) },
{ HP_POP(clif->favorite_item, HP_clif_favorite_item) },
{ HP_POP(clif->clearcart, HP_clif_clearcart) },
{ HP_POP(clif->item_identify_list, HP_clif_item_identify_list) },
@@ -576,6 +585,8 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->specialeffect, HP_clif_specialeffect) },
{ HP_POP(clif->specialeffect_single, HP_clif_specialeffect_single) },
{ HP_POP(clif->specialeffect_value, HP_clif_specialeffect_value) },
+ { HP_POP(clif->removeSpecialEffect, HP_clif_removeSpecialEffect) },
+ { HP_POP(clif->removeSpecialEffect_single, HP_clif_removeSpecialEffect_single) },
{ HP_POP(clif->millenniumshield, HP_clif_millenniumshield) },
{ HP_POP(clif->spiritcharm, HP_clif_spiritcharm) },
{ HP_POP(clif->charm_single, HP_clif_charm_single) },
@@ -601,6 +612,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->broadcast2, HP_clif_broadcast2) },
{ HP_POP(clif->messagecolor_self, HP_clif_messagecolor_self) },
{ HP_POP(clif->messagecolor, HP_clif_messagecolor) },
+ { HP_POP(clif->serviceMessageColor, HP_clif_serviceMessageColor) },
{ HP_POP(clif->disp_overhead, HP_clif_disp_overhead) },
{ HP_POP(clif->notify_playerchat, HP_clif_notify_playerchat) },
{ HP_POP(clif->msgtable, HP_clif_msgtable) },
@@ -878,7 +890,10 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->pChangeCart, HP_clif_pChangeCart) },
{ HP_POP(clif->pStatusUp, HP_clif_pStatusUp) },
{ HP_POP(clif->pSkillUp, HP_clif_pSkillUp) },
+ { HP_POP(clif->useSkillToIdReal, HP_clif_useSkillToIdReal) },
{ HP_POP(clif->pUseSkillToId, HP_clif_pUseSkillToId) },
+ { HP_POP(clif->pStartUseSkillToId, HP_clif_pStartUseSkillToId) },
+ { HP_POP(clif->pStopUseSkillToId, HP_clif_pStopUseSkillToId) },
{ HP_POP(clif->pUseSkillToId_homun, HP_clif_pUseSkillToId_homun) },
{ HP_POP(clif->pUseSkillToId_mercenary, HP_clif_pUseSkillToId_mercenary) },
{ HP_POP(clif->pUseSkillToPos, HP_clif_pUseSkillToPos) },
@@ -1128,6 +1143,12 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->petEvolutionResult, HP_clif_petEvolutionResult) },
{ HP_POP(clif->party_dead_notification, HP_clif_party_dead_notification) },
{ HP_POP(clif->pMemorialDungeonCommand, HP_clif_pMemorialDungeonCommand) },
+ { HP_POP(clif->camera_showWindow, HP_clif_camera_showWindow) },
+ { HP_POP(clif->camera_change, HP_clif_camera_change) },
+ { HP_POP(clif->pCameraInfo, HP_clif_pCameraInfo) },
+ { HP_POP(clif->item_preview, HP_clif_item_preview) },
+ { HP_POP(clif->enchant_equipment, HP_clif_enchant_equipment) },
+ { HP_POP(clif->pReqRemainTime, HP_clif_pReqRemainTime) },
/* cmdline_interface */
{ HP_POP(cmdline->init, HP_cmdline_init) },
{ HP_POP(cmdline->final, HP_cmdline_final) },
@@ -1729,6 +1750,7 @@ struct HookingPointData HookingPoints[] = {
/* map_interface */
{ HP_POP(map->zone_init, HP_map_zone_init) },
{ HP_POP(map->zone_remove, HP_map_zone_remove) },
+ { HP_POP(map->zone_remove_all, HP_map_zone_remove_all) },
{ HP_POP(map->zone_apply, HP_map_zone_apply) },
{ HP_POP(map->zone_change, HP_map_zone_change) },
{ HP_POP(map->zone_change2, HP_map_zone_change2) },
@@ -2169,6 +2191,11 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(npc->secure_timeout_timer, HP_npc_secure_timeout_timer) },
/* nullpo_interface */
{ HP_POP(nullpo->assert_report, HP_nullpo_assert_report) },
+/* packets_interface */
+ { HP_POP(packets->init, HP_packets_init) },
+ { HP_POP(packets->final, HP_packets_final) },
+ { HP_POP(packets->addLens, HP_packets_addLens) },
+ { HP_POP(packets->addLen, HP_packets_addLen) },
/* party_interface */
{ HP_POP(party->init, HP_party_init) },
{ HP_POP(party->final, HP_party_final) },
@@ -2478,6 +2505,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(pc->check_basicskill, HP_pc_check_basicskill) },
{ HP_POP(pc->isDeathPenaltyJob, HP_pc_isDeathPenaltyJob) },
{ HP_POP(pc->has_second_costume, HP_pc_has_second_costume) },
+ { HP_POP(pc->expandInventory, HP_pc_expandInventory) },
/* pcre_interface */
{ HP_POP(libpcre->compile, HP_libpcre_compile) },
{ HP_POP(libpcre->study, HP_libpcre_study) },
@@ -2558,6 +2586,7 @@ struct HookingPointData HookingPoints[] = {
{ 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_validate_mercenary_class, HP_quest_questinfo_validate_mercenary_class) },
{ HP_POP(quest->questinfo_vector_clear, HP_quest_questinfo_vector_clear) },
/* rnd_interface */
{ HP_POP(rnd->init, HP_rnd_init) },
@@ -2917,6 +2946,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(skill->onskillusage, HP_skill_onskillusage) },
{ HP_POP(skill->cell_overlap, HP_skill_cell_overlap) },
{ HP_POP(skill->timerskill, HP_skill_timerskill) },
+ { HP_POP(skill->trap_do_splash, HP_skill_trap_do_splash) },
{ HP_POP(skill->trap_splash, HP_skill_trap_splash) },
{ HP_POP(skill->check_condition_mercenary, HP_skill_check_condition_mercenary) },
{ HP_POP(skill->locate_element_field, HP_skill_locate_element_field) },
@@ -3041,8 +3071,10 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(sockt->realloc_fifo, HP_sockt_realloc_fifo) },
{ HP_POP(sockt->realloc_writefifo, HP_sockt_realloc_writefifo) },
{ HP_POP(sockt->wfifoset, HP_sockt_wfifoset) },
+ { HP_POP(sockt->wfifohead, HP_sockt_wfifohead) },
{ HP_POP(sockt->rfifoskip, HP_sockt_rfifoskip) },
{ HP_POP(sockt->close, HP_sockt_close) },
+ { HP_POP(sockt->validateWfifo, HP_sockt_validateWfifo) },
{ HP_POP(sockt->session_is_valid, HP_sockt_session_is_valid) },
{ HP_POP(sockt->session_is_active, HP_sockt_session_is_active) },
{ HP_POP(sockt->flush, HP_sockt_flush) },
@@ -3179,6 +3211,8 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(status->base_atk, HP_status_base_atk) },
{ HP_POP(status->get_base_maxhp, HP_status_get_base_maxhp) },
{ HP_POP(status->get_base_maxsp, HP_status_get_base_maxsp) },
+ { HP_POP(status->get_restart_hp, HP_status_get_restart_hp) },
+ { HP_POP(status->get_restart_sp, HP_status_get_restart_sp) },
{ HP_POP(status->calc_npc_, HP_status_calc_npc_) },
{ HP_POP(status->calc_str, HP_status_calc_str) },
{ HP_POP(status->calc_agi, HP_status_calc_agi) },
diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
index 860e47f1b..05f182f9e 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
@@ -1459,27 +1459,80 @@ bool HP_achievement_check_title(struct map_session_data *sd, int title_id) {
}
return retVal___;
}
-void HP_achievement_get_rewards(struct map_session_data *sd, const struct achievement_data *ad) {
+bool HP_achievement_get_rewards(struct map_session_data *sd, const struct achievement_data *ad) {
int hIndex = 0;
+ bool retVal___ = false;
if (HPMHooks.count.HP_achievement_get_rewards_pre > 0) {
- void (*preHookFunc) (struct map_session_data **sd, const struct achievement_data **ad);
+ bool (*preHookFunc) (struct map_session_data **sd, const struct achievement_data **ad);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_get_rewards_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_achievement_get_rewards_pre[hIndex].func;
- preHookFunc(&sd, &ad);
+ retVal___ = preHookFunc(&sd, &ad);
}
if (*HPMforce_return) {
*HPMforce_return = false;
- return;
+ return retVal___;
}
}
{
- HPMHooks.source.achievement.get_rewards(sd, ad);
+ retVal___ = HPMHooks.source.achievement.get_rewards(sd, ad);
}
if (HPMHooks.count.HP_achievement_get_rewards_post > 0) {
- void (*postHookFunc) (struct map_session_data *sd, const struct achievement_data *ad);
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, const struct achievement_data *ad);
for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_get_rewards_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_achievement_get_rewards_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, ad);
+ }
+ }
+ return retVal___;
+}
+void HP_achievement_get_rewards_buffs(struct map_session_data *sd, const struct achievement_data *ad) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_achievement_get_rewards_buffs_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd, const struct achievement_data **ad);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_get_rewards_buffs_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_achievement_get_rewards_buffs_pre[hIndex].func;
+ preHookFunc(&sd, &ad);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.achievement.get_rewards_buffs(sd, ad);
+ }
+ if (HPMHooks.count.HP_achievement_get_rewards_buffs_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd, const struct achievement_data *ad);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_get_rewards_buffs_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_achievement_get_rewards_buffs_post[hIndex].func;
+ postHookFunc(sd, ad);
+ }
+ }
+ return;
+}
+void HP_achievement_get_rewards_items(struct map_session_data *sd, const struct achievement_data *ad) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_achievement_get_rewards_items_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd, const struct achievement_data **ad);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_get_rewards_items_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_achievement_get_rewards_items_pre[hIndex].func;
+ preHookFunc(&sd, &ad);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.achievement.get_rewards_items(sd, ad);
+ }
+ if (HPMHooks.count.HP_achievement_get_rewards_items_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd, const struct achievement_data *ad);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_get_rewards_items_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_achievement_get_rewards_items_post[hIndex].func;
postHookFunc(sd, ad);
}
}
@@ -2806,6 +2859,32 @@ void HP_battle_reflect_damage(struct block_list *target, struct block_list *src,
}
return;
}
+void HP_battle_reflect_trap(struct block_list *target, struct block_list *src, struct Damage *md, uint16 skill_id) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_battle_reflect_trap_pre > 0) {
+ void (*preHookFunc) (struct block_list **target, struct block_list **src, struct Damage **md, uint16 *skill_id);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_battle_reflect_trap_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_battle_reflect_trap_pre[hIndex].func;
+ preHookFunc(&target, &src, &md, &skill_id);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.battle.reflect_trap(target, src, md, skill_id);
+ }
+ if (HPMHooks.count.HP_battle_reflect_trap_post > 0) {
+ void (*postHookFunc) (struct block_list *target, struct block_list *src, struct Damage *md, uint16 skill_id);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_battle_reflect_trap_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_battle_reflect_trap_post[hIndex].func;
+ postHookFunc(target, src, md, skill_id);
+ }
+ }
+ return;
+}
int HP_battle_attr_ratio(int atk_elem, int def_type, int def_lv) {
int hIndex = 0;
int retVal___ = 0;
@@ -9707,10 +9786,10 @@ void HP_clif_item_drop_announce(struct map_session_data *sd, int nameid, char *m
}
return;
}
-void HP_clif_clearunit_single(int id, clr_type type, int fd) {
+void HP_clif_clearunit_single(int id, enum clr_type type, int fd) {
int hIndex = 0;
if (HPMHooks.count.HP_clif_clearunit_single_pre > 0) {
- void (*preHookFunc) (int *id, clr_type *type, int *fd);
+ void (*preHookFunc) (int *id, enum clr_type *type, int *fd);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearunit_single_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_clif_clearunit_single_pre[hIndex].func;
@@ -9725,7 +9804,7 @@ void HP_clif_clearunit_single(int id, clr_type type, int fd) {
HPMHooks.source.clif.clearunit_single(id, type, fd);
}
if (HPMHooks.count.HP_clif_clearunit_single_post > 0) {
- void (*postHookFunc) (int id, clr_type type, int fd);
+ void (*postHookFunc) (int id, enum clr_type type, int fd);
for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearunit_single_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_clif_clearunit_single_post[hIndex].func;
postHookFunc(id, type, fd);
@@ -9733,10 +9812,10 @@ void HP_clif_clearunit_single(int id, clr_type type, int fd) {
}
return;
}
-void HP_clif_clearunit_area(struct block_list *bl, clr_type type) {
+void HP_clif_clearunit_area(struct block_list *bl, enum clr_type type) {
int hIndex = 0;
if (HPMHooks.count.HP_clif_clearunit_area_pre > 0) {
- void (*preHookFunc) (struct block_list **bl, clr_type *type);
+ void (*preHookFunc) (struct block_list **bl, enum clr_type *type);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearunit_area_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_clif_clearunit_area_pre[hIndex].func;
@@ -9751,7 +9830,7 @@ void HP_clif_clearunit_area(struct block_list *bl, clr_type type) {
HPMHooks.source.clif.clearunit_area(bl, type);
}
if (HPMHooks.count.HP_clif_clearunit_area_post > 0) {
- void (*postHookFunc) (struct block_list *bl, clr_type type);
+ void (*postHookFunc) (struct block_list *bl, enum clr_type type);
for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearunit_area_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_clif_clearunit_area_post[hIndex].func;
postHookFunc(bl, type);
@@ -9759,10 +9838,10 @@ void HP_clif_clearunit_area(struct block_list *bl, clr_type type) {
}
return;
}
-void HP_clif_clearunit_delayed(struct block_list *bl, clr_type type, int64 tick) {
+void HP_clif_clearunit_delayed(struct block_list *bl, enum clr_type type, int64 tick) {
int hIndex = 0;
if (HPMHooks.count.HP_clif_clearunit_delayed_pre > 0) {
- void (*preHookFunc) (struct block_list **bl, clr_type *type, int64 *tick);
+ void (*preHookFunc) (struct block_list **bl, enum clr_type *type, int64 *tick);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearunit_delayed_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_clif_clearunit_delayed_pre[hIndex].func;
@@ -9777,7 +9856,7 @@ void HP_clif_clearunit_delayed(struct block_list *bl, clr_type type, int64 tick)
HPMHooks.source.clif.clearunit_delayed(bl, type, tick);
}
if (HPMHooks.count.HP_clif_clearunit_delayed_post > 0) {
- void (*postHookFunc) (struct block_list *bl, clr_type type, int64 tick);
+ void (*postHookFunc) (struct block_list *bl, enum clr_type type, int64 tick);
for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearunit_delayed_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_clif_clearunit_delayed_post[hIndex].func;
postHookFunc(bl, type, tick);
@@ -12046,6 +12125,162 @@ void HP_clif_cartItems(struct map_session_data *sd, enum inventory_type type) {
}
return;
}
+void HP_clif_inventoryExpansionInfo(struct map_session_data *sd) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_inventoryExpansionInfo_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventoryExpansionInfo_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_inventoryExpansionInfo_pre[hIndex].func;
+ preHookFunc(&sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.inventoryExpansionInfo(sd);
+ }
+ if (HPMHooks.count.HP_clif_inventoryExpansionInfo_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventoryExpansionInfo_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_inventoryExpansionInfo_post[hIndex].func;
+ postHookFunc(sd);
+ }
+ }
+ return;
+}
+void HP_clif_inventoryExpandAck(struct map_session_data *sd, enum expand_inventory result, int itemId) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_inventoryExpandAck_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd, enum expand_inventory *result, int *itemId);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventoryExpandAck_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_inventoryExpandAck_pre[hIndex].func;
+ preHookFunc(&sd, &result, &itemId);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.inventoryExpandAck(sd, result, itemId);
+ }
+ if (HPMHooks.count.HP_clif_inventoryExpandAck_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd, enum expand_inventory result, int itemId);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventoryExpandAck_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_inventoryExpandAck_post[hIndex].func;
+ postHookFunc(sd, result, itemId);
+ }
+ }
+ return;
+}
+void HP_clif_inventoryExpandResult(struct map_session_data *sd, enum expand_inventory_result result) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_inventoryExpandResult_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd, enum expand_inventory_result *result);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventoryExpandResult_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_inventoryExpandResult_pre[hIndex].func;
+ preHookFunc(&sd, &result);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.inventoryExpandResult(sd, result);
+ }
+ if (HPMHooks.count.HP_clif_inventoryExpandResult_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd, enum expand_inventory_result result);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventoryExpandResult_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_inventoryExpandResult_post[hIndex].func;
+ postHookFunc(sd, result);
+ }
+ }
+ return;
+}
+void HP_clif_pInventoryExpansion(int fd, struct map_session_data *sd) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_pInventoryExpansion_pre > 0) {
+ void (*preHookFunc) (int *fd, struct map_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pInventoryExpansion_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_pInventoryExpansion_pre[hIndex].func;
+ preHookFunc(&fd, &sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.pInventoryExpansion(fd, sd);
+ }
+ if (HPMHooks.count.HP_clif_pInventoryExpansion_post > 0) {
+ void (*postHookFunc) (int fd, struct map_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pInventoryExpansion_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_pInventoryExpansion_post[hIndex].func;
+ postHookFunc(fd, sd);
+ }
+ }
+ return;
+}
+void HP_clif_pInventoryExpansionConfirmed(int fd, struct map_session_data *sd) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_pInventoryExpansionConfirmed_pre > 0) {
+ void (*preHookFunc) (int *fd, struct map_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pInventoryExpansionConfirmed_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_pInventoryExpansionConfirmed_pre[hIndex].func;
+ preHookFunc(&fd, &sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.pInventoryExpansionConfirmed(fd, sd);
+ }
+ if (HPMHooks.count.HP_clif_pInventoryExpansionConfirmed_post > 0) {
+ void (*postHookFunc) (int fd, struct map_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pInventoryExpansionConfirmed_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_pInventoryExpansionConfirmed_post[hIndex].func;
+ postHookFunc(fd, sd);
+ }
+ }
+ return;
+}
+void HP_clif_pInventoryExpansionRejected(int fd, struct map_session_data *sd) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_pInventoryExpansionRejected_pre > 0) {
+ void (*preHookFunc) (int *fd, struct map_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pInventoryExpansionRejected_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_pInventoryExpansionRejected_pre[hIndex].func;
+ preHookFunc(&fd, &sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.pInventoryExpansionRejected(fd, sd);
+ }
+ if (HPMHooks.count.HP_clif_pInventoryExpansionRejected_post > 0) {
+ void (*postHookFunc) (int fd, struct map_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pInventoryExpansionRejected_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_pInventoryExpansionRejected_post[hIndex].func;
+ postHookFunc(fd, sd);
+ }
+ }
+ return;
+}
void HP_clif_favorite_item(struct map_session_data *sd, unsigned short index) {
int hIndex = 0;
if (HPMHooks.count.HP_clif_favorite_item_pre > 0) {
@@ -14403,6 +14638,58 @@ void HP_clif_specialeffect_value(struct block_list *bl, int effect_id, int num,
}
return;
}
+void HP_clif_removeSpecialEffect(struct block_list *bl, int effectId, enum send_target target) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_removeSpecialEffect_pre > 0) {
+ void (*preHookFunc) (struct block_list **bl, int *effectId, enum send_target *target);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_removeSpecialEffect_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_removeSpecialEffect_pre[hIndex].func;
+ preHookFunc(&bl, &effectId, &target);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.removeSpecialEffect(bl, effectId, target);
+ }
+ if (HPMHooks.count.HP_clif_removeSpecialEffect_post > 0) {
+ void (*postHookFunc) (struct block_list *bl, int effectId, enum send_target target);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_removeSpecialEffect_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_removeSpecialEffect_post[hIndex].func;
+ postHookFunc(bl, effectId, target);
+ }
+ }
+ return;
+}
+void HP_clif_removeSpecialEffect_single(struct block_list *bl, int effectId, struct block_list *targetBl) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_removeSpecialEffect_single_pre > 0) {
+ void (*preHookFunc) (struct block_list **bl, int *effectId, struct block_list **targetBl);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_removeSpecialEffect_single_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_removeSpecialEffect_single_pre[hIndex].func;
+ preHookFunc(&bl, &effectId, &targetBl);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.removeSpecialEffect_single(bl, effectId, targetBl);
+ }
+ if (HPMHooks.count.HP_clif_removeSpecialEffect_single_post > 0) {
+ void (*postHookFunc) (struct block_list *bl, int effectId, struct block_list *targetBl);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_removeSpecialEffect_single_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_removeSpecialEffect_single_post[hIndex].func;
+ postHookFunc(bl, effectId, targetBl);
+ }
+ }
+ return;
+}
void HP_clif_millenniumshield(struct block_list *bl, short shields) {
int hIndex = 0;
if (HPMHooks.count.HP_clif_millenniumshield_pre > 0) {
@@ -15053,6 +15340,32 @@ void HP_clif_messagecolor(struct block_list *bl, uint32 color, const char *msg)
}
return;
}
+void HP_clif_serviceMessageColor(struct map_session_data *sd, uint32 color, const char *msg) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_serviceMessageColor_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd, uint32 *color, const char **msg);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_serviceMessageColor_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_serviceMessageColor_pre[hIndex].func;
+ preHookFunc(&sd, &color, &msg);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.serviceMessageColor(sd, color, msg);
+ }
+ if (HPMHooks.count.HP_clif_serviceMessageColor_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd, uint32 color, const char *msg);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_serviceMessageColor_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_serviceMessageColor_post[hIndex].func;
+ postHookFunc(sd, color, msg);
+ }
+ }
+ return;
+}
void HP_clif_disp_overhead(struct block_list *bl, const char *mes, enum send_target target, struct block_list *target_bl) {
int hIndex = 0;
if (HPMHooks.count.HP_clif_disp_overhead_pre > 0) {
@@ -20710,10 +21023,10 @@ bool HP_clif_parse_roulette_db(void) {
}
return retVal___;
}
-void HP_clif_roulette_generate_ack(struct map_session_data *sd, unsigned char result, short stage, short prizeIdx, int bonusItemID) {
+void HP_clif_roulette_generate_ack(struct map_session_data *sd, enum GENERATE_ROULETTE_ACK result, short stage, short prizeIdx, int bonusItemID) {
int hIndex = 0;
if (HPMHooks.count.HP_clif_roulette_generate_ack_pre > 0) {
- void (*preHookFunc) (struct map_session_data **sd, unsigned char *result, short *stage, short *prizeIdx, int *bonusItemID);
+ void (*preHookFunc) (struct map_session_data **sd, enum GENERATE_ROULETTE_ACK *result, short *stage, short *prizeIdx, int *bonusItemID);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_roulette_generate_ack_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_clif_roulette_generate_ack_pre[hIndex].func;
@@ -20728,7 +21041,7 @@ void HP_clif_roulette_generate_ack(struct map_session_data *sd, unsigned char re
HPMHooks.source.clif.roulette_generate_ack(sd, result, stage, prizeIdx, bonusItemID);
}
if (HPMHooks.count.HP_clif_roulette_generate_ack_post > 0) {
- void (*postHookFunc) (struct map_session_data *sd, unsigned char result, short stage, short prizeIdx, int bonusItemID);
+ void (*postHookFunc) (struct map_session_data *sd, enum GENERATE_ROULETTE_ACK result, short stage, short prizeIdx, int bonusItemID);
for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_roulette_generate_ack_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_clif_roulette_generate_ack_post[hIndex].func;
postHookFunc(sd, result, stage, prizeIdx, bonusItemID);
@@ -22273,6 +22586,32 @@ void HP_clif_pSkillUp(int fd, struct map_session_data *sd) {
}
return;
}
+void HP_clif_useSkillToIdReal(int fd, struct map_session_data *sd, int skill_id, int skill_lv, int target_id) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_useSkillToIdReal_pre > 0) {
+ void (*preHookFunc) (int *fd, struct map_session_data **sd, int *skill_id, int *skill_lv, int *target_id);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_useSkillToIdReal_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_useSkillToIdReal_pre[hIndex].func;
+ preHookFunc(&fd, &sd, &skill_id, &skill_lv, &target_id);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.useSkillToIdReal(fd, sd, skill_id, skill_lv, target_id);
+ }
+ if (HPMHooks.count.HP_clif_useSkillToIdReal_post > 0) {
+ void (*postHookFunc) (int fd, struct map_session_data *sd, int skill_id, int skill_lv, int target_id);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_useSkillToIdReal_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_useSkillToIdReal_post[hIndex].func;
+ postHookFunc(fd, sd, skill_id, skill_lv, target_id);
+ }
+ }
+ return;
+}
void HP_clif_pUseSkillToId(int fd, struct map_session_data *sd) {
int hIndex = 0;
if (HPMHooks.count.HP_clif_pUseSkillToId_pre > 0) {
@@ -22299,6 +22638,58 @@ void HP_clif_pUseSkillToId(int fd, struct map_session_data *sd) {
}
return;
}
+void HP_clif_pStartUseSkillToId(int fd, struct map_session_data *sd) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_pStartUseSkillToId_pre > 0) {
+ void (*preHookFunc) (int *fd, struct map_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pStartUseSkillToId_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_pStartUseSkillToId_pre[hIndex].func;
+ preHookFunc(&fd, &sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.pStartUseSkillToId(fd, sd);
+ }
+ if (HPMHooks.count.HP_clif_pStartUseSkillToId_post > 0) {
+ void (*postHookFunc) (int fd, struct map_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pStartUseSkillToId_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_pStartUseSkillToId_post[hIndex].func;
+ postHookFunc(fd, sd);
+ }
+ }
+ return;
+}
+void HP_clif_pStopUseSkillToId(int fd, struct map_session_data *sd) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_pStopUseSkillToId_pre > 0) {
+ void (*preHookFunc) (int *fd, struct map_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pStopUseSkillToId_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_pStopUseSkillToId_pre[hIndex].func;
+ preHookFunc(&fd, &sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.pStopUseSkillToId(fd, sd);
+ }
+ if (HPMHooks.count.HP_clif_pStopUseSkillToId_post > 0) {
+ void (*postHookFunc) (int fd, struct map_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pStopUseSkillToId_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_pStopUseSkillToId_post[hIndex].func;
+ postHookFunc(fd, sd);
+ }
+ }
+ return;
+}
void HP_clif_pUseSkillToId_homun(struct homun_data *hd, struct map_session_data *sd, int64 tick, uint16 skill_id, uint16 skill_lv, int target_id) {
int hIndex = 0;
if (HPMHooks.count.HP_clif_pUseSkillToId_homun_pre > 0) {
@@ -28782,6 +29173,163 @@ void HP_clif_pMemorialDungeonCommand(int fd, struct map_session_data *sd) {
}
return;
}
+void HP_clif_camera_showWindow(struct map_session_data *sd) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_camera_showWindow_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_camera_showWindow_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_camera_showWindow_pre[hIndex].func;
+ preHookFunc(&sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.camera_showWindow(sd);
+ }
+ if (HPMHooks.count.HP_clif_camera_showWindow_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_camera_showWindow_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_camera_showWindow_post[hIndex].func;
+ postHookFunc(sd);
+ }
+ }
+ return;
+}
+void HP_clif_camera_change(struct map_session_data *sd, float range, float rotation, float latitude, enum send_target target) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_camera_change_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd, float *range, float *rotation, float *latitude, enum send_target *target);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_camera_change_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_camera_change_pre[hIndex].func;
+ preHookFunc(&sd, &range, &rotation, &latitude, &target);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.camera_change(sd, range, rotation, latitude, target);
+ }
+ if (HPMHooks.count.HP_clif_camera_change_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd, float range, float rotation, float latitude, enum send_target target);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_camera_change_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_camera_change_post[hIndex].func;
+ postHookFunc(sd, range, rotation, latitude, target);
+ }
+ }
+ return;
+}
+void HP_clif_pCameraInfo(int fd, struct map_session_data *sd) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_pCameraInfo_pre > 0) {
+ void (*preHookFunc) (int *fd, struct map_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCameraInfo_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_pCameraInfo_pre[hIndex].func;
+ preHookFunc(&fd, &sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.pCameraInfo(fd, sd);
+ }
+ if (HPMHooks.count.HP_clif_pCameraInfo_post > 0) {
+ void (*postHookFunc) (int fd, struct map_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCameraInfo_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_pCameraInfo_post[hIndex].func;
+ postHookFunc(fd, sd);
+ }
+ }
+ return;
+}
+void HP_clif_item_preview(struct map_session_data *sd, int n) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_item_preview_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd, int *n);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_preview_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_item_preview_pre[hIndex].func;
+ preHookFunc(&sd, &n);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.item_preview(sd, n);
+ }
+ if (HPMHooks.count.HP_clif_item_preview_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd, int n);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_preview_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_item_preview_post[hIndex].func;
+ postHookFunc(sd, n);
+ }
+ }
+ return;
+}
+bool HP_clif_enchant_equipment(struct map_session_data *sd, enum equip_pos pos, int cardSlot, int cardId) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_clif_enchant_equipment_pre > 0) {
+ bool (*preHookFunc) (struct map_session_data **sd, enum equip_pos *pos, int *cardSlot, int *cardId);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_enchant_equipment_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_enchant_equipment_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &pos, &cardSlot, &cardId);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.clif.enchant_equipment(sd, pos, cardSlot, cardId);
+ }
+ if (HPMHooks.count.HP_clif_enchant_equipment_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, enum equip_pos pos, int cardSlot, int cardId);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_enchant_equipment_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_enchant_equipment_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, pos, cardSlot, cardId);
+ }
+ }
+ return retVal___;
+}
+void HP_clif_pReqRemainTime(int fd, struct map_session_data *sd) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_pReqRemainTime_pre > 0) {
+ void (*preHookFunc) (int *fd, struct map_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReqRemainTime_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_pReqRemainTime_pre[hIndex].func;
+ preHookFunc(&fd, &sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.pReqRemainTime(fd, sd);
+ }
+ if (HPMHooks.count.HP_clif_pReqRemainTime_post > 0) {
+ void (*postHookFunc) (int fd, struct map_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReqRemainTime_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_pReqRemainTime_post[hIndex].func;
+ postHookFunc(fd, sd);
+ }
+ }
+ return;
+}
/* cmdline_interface */
void HP_cmdline_init(void) {
int hIndex = 0;
@@ -44415,6 +44963,32 @@ void HP_map_zone_remove(int m) {
}
return;
}
+void HP_map_zone_remove_all(int m) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_map_zone_remove_all_pre > 0) {
+ void (*preHookFunc) (int *m);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_remove_all_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_map_zone_remove_all_pre[hIndex].func;
+ preHookFunc(&m);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.map.zone_remove_all(m);
+ }
+ if (HPMHooks.count.HP_map_zone_remove_all_post > 0) {
+ void (*postHookFunc) (int m);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_remove_all_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_map_zone_remove_all_post[hIndex].func;
+ postHookFunc(m);
+ }
+ }
+ return;
+}
void HP_map_zone_apply(int m, struct map_zone_data *zone, const char *start, const char *buffer, const char *filepath) {
int hIndex = 0;
if (HPMHooks.count.HP_map_zone_apply_pre > 0) {
@@ -56242,6 +56816,111 @@ void HP_nullpo_assert_report(const char *file, int line, const char *func, const
}
return;
}
+/* packets_interface */
+void HP_packets_init(void) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_packets_init_pre > 0) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_init_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_packets_init_pre[hIndex].func;
+ preHookFunc();
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.packets.init();
+ }
+ if (HPMHooks.count.HP_packets_init_post > 0) {
+ void (*postHookFunc) (void);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_init_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_packets_init_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_packets_final(void) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_packets_final_pre > 0) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_final_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_packets_final_pre[hIndex].func;
+ preHookFunc();
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.packets.final();
+ }
+ if (HPMHooks.count.HP_packets_final_post > 0) {
+ void (*postHookFunc) (void);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_final_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_packets_final_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_packets_addLens(void) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_packets_addLens_pre > 0) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_addLens_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_packets_addLens_pre[hIndex].func;
+ preHookFunc();
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.packets.addLens();
+ }
+ if (HPMHooks.count.HP_packets_addLens_post > 0) {
+ void (*postHookFunc) (void);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_addLens_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_packets_addLens_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_packets_addLen(int id, int len) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_packets_addLen_pre > 0) {
+ void (*preHookFunc) (int *id, int *len);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_addLen_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_packets_addLen_pre[hIndex].func;
+ preHookFunc(&id, &len);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.packets.addLen(id, len);
+ }
+ if (HPMHooks.count.HP_packets_addLen_post > 0) {
+ void (*postHookFunc) (int id, int len);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_packets_addLen_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_packets_addLen_post[hIndex].func;
+ postHookFunc(id, len);
+ }
+ }
+ return;
+}
/* party_interface */
void HP_party_init(bool minimal) {
int hIndex = 0;
@@ -58356,10 +59035,10 @@ int HP_pc_makesavestatus(struct map_session_data *sd) {
}
return retVal___;
}
-void HP_pc_respawn(struct map_session_data *sd, clr_type clrtype) {
+void HP_pc_respawn(struct map_session_data *sd, enum clr_type clrtype) {
int hIndex = 0;
if (HPMHooks.count.HP_pc_respawn_pre > 0) {
- void (*preHookFunc) (struct map_session_data **sd, clr_type *clrtype);
+ void (*preHookFunc) (struct map_session_data **sd, enum clr_type *clrtype);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_respawn_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_pc_respawn_pre[hIndex].func;
@@ -58374,7 +59053,7 @@ void HP_pc_respawn(struct map_session_data *sd, clr_type clrtype) {
HPMHooks.source.pc.respawn(sd, clrtype);
}
if (HPMHooks.count.HP_pc_respawn_post > 0) {
- void (*postHookFunc) (struct map_session_data *sd, clr_type clrtype);
+ void (*postHookFunc) (struct map_session_data *sd, enum clr_type clrtype);
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_respawn_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_pc_respawn_post[hIndex].func;
postHookFunc(sd, clrtype);
@@ -58838,11 +59517,11 @@ int HP_pc_clean_skilltree(struct map_session_data *sd) {
}
return retVal___;
}
-int HP_pc_setpos(struct map_session_data *sd, unsigned short map_index, int x, int y, clr_type clrtype) {
+int HP_pc_setpos(struct map_session_data *sd, unsigned short map_index, int x, int y, enum clr_type clrtype) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_pc_setpos_pre > 0) {
- int (*preHookFunc) (struct map_session_data **sd, unsigned short *map_index, int *x, int *y, clr_type *clrtype);
+ int (*preHookFunc) (struct map_session_data **sd, unsigned short *map_index, int *x, int *y, enum clr_type *clrtype);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_setpos_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_pc_setpos_pre[hIndex].func;
@@ -58857,7 +59536,7 @@ int HP_pc_setpos(struct map_session_data *sd, unsigned short map_index, int x, i
retVal___ = HPMHooks.source.pc.setpos(sd, map_index, x, y, clrtype);
}
if (HPMHooks.count.HP_pc_setpos_post > 0) {
- int (*postHookFunc) (int retVal___, struct map_session_data *sd, unsigned short map_index, int x, int y, clr_type clrtype);
+ int (*postHookFunc) (int retVal___, struct map_session_data *sd, unsigned short map_index, int x, int y, enum clr_type clrtype);
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_setpos_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_pc_setpos_post[hIndex].func;
retVal___ = postHookFunc(retVal___, sd, map_index, x, y, clrtype);
@@ -58892,11 +59571,11 @@ int HP_pc_setsavepoint(struct map_session_data *sd, short map_index, int x, int
}
return retVal___;
}
-int HP_pc_randomwarp(struct map_session_data *sd, clr_type type) {
+int HP_pc_randomwarp(struct map_session_data *sd, enum clr_type type) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_pc_randomwarp_pre > 0) {
- int (*preHookFunc) (struct map_session_data **sd, clr_type *type);
+ int (*preHookFunc) (struct map_session_data **sd, enum clr_type *type);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_randomwarp_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_pc_randomwarp_pre[hIndex].func;
@@ -58911,7 +59590,7 @@ int HP_pc_randomwarp(struct map_session_data *sd, clr_type type) {
retVal___ = HPMHooks.source.pc.randomwarp(sd, type);
}
if (HPMHooks.count.HP_pc_randomwarp_post > 0) {
- int (*postHookFunc) (int retVal___, struct map_session_data *sd, clr_type type);
+ int (*postHookFunc) (int retVal___, struct map_session_data *sd, enum clr_type type);
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_randomwarp_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_pc_randomwarp_post[hIndex].func;
retVal___ = postHookFunc(retVal___, sd, type);
@@ -59054,11 +59733,11 @@ int HP_pc_payzeny(struct map_session_data *sd, int zeny, enum e_log_pick_type ty
}
return retVal___;
}
-int HP_pc_additem(struct map_session_data *sd, struct item *item_data, int amount, e_log_pick_type log_type) {
+int HP_pc_additem(struct map_session_data *sd, const struct item *item_data, int amount, e_log_pick_type log_type) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_pc_additem_pre > 0) {
- int (*preHookFunc) (struct map_session_data **sd, struct item **item_data, int *amount, e_log_pick_type *log_type);
+ int (*preHookFunc) (struct map_session_data **sd, const struct item **item_data, int *amount, e_log_pick_type *log_type);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_additem_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_pc_additem_pre[hIndex].func;
@@ -59073,7 +59752,7 @@ int HP_pc_additem(struct map_session_data *sd, struct item *item_data, int amoun
retVal___ = HPMHooks.source.pc.additem(sd, item_data, amount, log_type);
}
if (HPMHooks.count.HP_pc_additem_post > 0) {
- int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct item *item_data, int amount, e_log_pick_type log_type);
+ int (*postHookFunc) (int retVal___, struct map_session_data *sd, const struct item *item_data, int amount, e_log_pick_type log_type);
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_additem_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_pc_additem_post[hIndex].func;
retVal___ = postHookFunc(retVal___, sd, item_data, amount, log_type);
@@ -63164,15 +63843,15 @@ int HP_pc_bonus_addeff_onskill(struct s_addeffectonskill *effect, int max, enum
}
return retVal___;
}
-int HP_pc_bonus_item_drop(struct s_add_drop *drop, const short max, short id, short group, int race, int rate) {
+int HP_pc_bonus_item_drop(struct s_add_drop *drop, const short max, int id, bool is_group, int race, int rate) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_pc_bonus_item_drop_pre > 0) {
- int (*preHookFunc) (struct s_add_drop **drop, const short *max, short *id, short *group, int *race, int *rate);
+ int (*preHookFunc) (struct s_add_drop **drop, const short *max, int *id, bool *is_group, int *race, int *rate);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus_item_drop_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_pc_bonus_item_drop_pre[hIndex].func;
- retVal___ = preHookFunc(&drop, &max, &id, &group, &race, &rate);
+ retVal___ = preHookFunc(&drop, &max, &id, &is_group, &race, &rate);
}
if (*HPMforce_return) {
*HPMforce_return = false;
@@ -63180,13 +63859,13 @@ int HP_pc_bonus_item_drop(struct s_add_drop *drop, const short max, short id, sh
}
}
{
- retVal___ = HPMHooks.source.pc.bonus_item_drop(drop, max, id, group, race, rate);
+ retVal___ = HPMHooks.source.pc.bonus_item_drop(drop, max, id, is_group, race, rate);
}
if (HPMHooks.count.HP_pc_bonus_item_drop_post > 0) {
- int (*postHookFunc) (int retVal___, struct s_add_drop *drop, const short max, short id, short group, int race, int rate);
+ int (*postHookFunc) (int retVal___, struct s_add_drop *drop, const short max, int id, bool is_group, int race, int rate);
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus_item_drop_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_pc_bonus_item_drop_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, drop, max, id, group, race, rate);
+ retVal___ = postHookFunc(retVal___, drop, max, id, is_group, race, rate);
}
}
return retVal___;
@@ -64464,6 +65143,33 @@ bool HP_pc_has_second_costume(struct map_session_data *sd) {
}
return retVal___;
}
+bool HP_pc_expandInventory(struct map_session_data *sd, int adjustSize) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_pc_expandInventory_pre > 0) {
+ bool (*preHookFunc) (struct map_session_data **sd, int *adjustSize);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_expandInventory_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_pc_expandInventory_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &adjustSize);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.pc.expandInventory(sd, adjustSize);
+ }
+ if (HPMHooks.count.HP_pc_expandInventory_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, int adjustSize);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_expandInventory_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_pc_expandInventory_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, adjustSize);
+ }
+ }
+ return retVal___;
+}
/* pcre_interface */
pcre* HP_libpcre_compile(const char *pattern, int options, const char **errptr, int *erroffset, const unsigned char *tableptr) {
int hIndex = 0;
@@ -66552,6 +67258,33 @@ bool HP_quest_questinfo_validate_quests(struct map_session_data *sd, struct ques
}
return retVal___;
}
+bool HP_quest_questinfo_validate_mercenary_class(struct map_session_data *sd, struct questinfo *qi) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_quest_questinfo_validate_mercenary_class_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_mercenary_class_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_quest_questinfo_validate_mercenary_class_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &qi);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.quest.questinfo_validate_mercenary_class(sd, qi);
+ }
+ if (HPMHooks.count.HP_quest_questinfo_validate_mercenary_class_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_mercenary_class_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_quest_questinfo_validate_mercenary_class_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) {
@@ -76185,6 +76918,32 @@ int HP_skill_timerskill(int tid, int64 tick, int id, intptr_t data) {
}
return retVal___;
}
+void HP_skill_trap_do_splash(struct block_list *bl, uint16 skill_id, uint16 skill_lv, int bl_flag, int64 tick) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_skill_trap_do_splash_pre > 0) {
+ void (*preHookFunc) (struct block_list **bl, uint16 *skill_id, uint16 *skill_lv, int *bl_flag, int64 *tick);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_trap_do_splash_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_skill_trap_do_splash_pre[hIndex].func;
+ preHookFunc(&bl, &skill_id, &skill_lv, &bl_flag, &tick);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.skill.trap_do_splash(bl, skill_id, skill_lv, bl_flag, tick);
+ }
+ if (HPMHooks.count.HP_skill_trap_do_splash_post > 0) {
+ void (*postHookFunc) (struct block_list *bl, uint16 skill_id, uint16 skill_lv, int bl_flag, int64 tick);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_trap_do_splash_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_skill_trap_do_splash_post[hIndex].func;
+ postHookFunc(bl, skill_id, skill_lv, bl_flag, tick);
+ }
+ }
+ return;
+}
int HP_skill_trap_splash(struct block_list *bl, va_list ap) {
int hIndex = 0;
int retVal___ = 0;
@@ -79551,15 +80310,15 @@ int HP_sockt_realloc_writefifo(int fd, size_t addition) {
}
return retVal___;
}
-int HP_sockt_wfifoset(int fd, size_t len) {
+int HP_sockt_wfifoset(int fd, size_t len, bool validate) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_sockt_wfifoset_pre > 0) {
- int (*preHookFunc) (int *fd, size_t *len);
+ int (*preHookFunc) (int *fd, size_t *len, bool *validate);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_wfifoset_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_sockt_wfifoset_pre[hIndex].func;
- retVal___ = preHookFunc(&fd, &len);
+ retVal___ = preHookFunc(&fd, &len, &validate);
}
if (*HPMforce_return) {
*HPMforce_return = false;
@@ -79567,17 +80326,43 @@ int HP_sockt_wfifoset(int fd, size_t len) {
}
}
{
- retVal___ = HPMHooks.source.sockt.wfifoset(fd, len);
+ retVal___ = HPMHooks.source.sockt.wfifoset(fd, len, validate);
}
if (HPMHooks.count.HP_sockt_wfifoset_post > 0) {
- int (*postHookFunc) (int retVal___, int fd, size_t len);
+ int (*postHookFunc) (int retVal___, int fd, size_t len, bool validate);
for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_wfifoset_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_sockt_wfifoset_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, fd, len);
+ retVal___ = postHookFunc(retVal___, fd, len, validate);
}
}
return retVal___;
}
+void HP_sockt_wfifohead(int fd, size_t len) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_sockt_wfifohead_pre > 0) {
+ void (*preHookFunc) (int *fd, size_t *len);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_wfifohead_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_sockt_wfifohead_pre[hIndex].func;
+ preHookFunc(&fd, &len);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.sockt.wfifohead(fd, len);
+ }
+ if (HPMHooks.count.HP_sockt_wfifohead_post > 0) {
+ void (*postHookFunc) (int fd, size_t len);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_wfifohead_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_sockt_wfifohead_post[hIndex].func;
+ postHookFunc(fd, len);
+ }
+ }
+ return;
+}
int HP_sockt_rfifoskip(int fd, size_t len) {
int hIndex = 0;
int retVal___ = 0;
@@ -79631,6 +80416,32 @@ void HP_sockt_close(int fd) {
}
return;
}
+void HP_sockt_validateWfifo(int fd, size_t len) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_sockt_validateWfifo_pre > 0) {
+ void (*preHookFunc) (int *fd, size_t *len);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_validateWfifo_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_sockt_validateWfifo_pre[hIndex].func;
+ preHookFunc(&fd, &len);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.sockt.validateWfifo(fd, len);
+ }
+ if (HPMHooks.count.HP_sockt_validateWfifo_post > 0) {
+ void (*postHookFunc) (int fd, size_t len);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_sockt_validateWfifo_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_sockt_validateWfifo_post[hIndex].func;
+ postHookFunc(fd, len);
+ }
+ }
+ return;
+}
bool HP_sockt_session_is_valid(int fd) {
int hIndex = 0;
bool retVal___ = false;
@@ -81252,11 +82063,11 @@ int HP_status_percent_change(struct block_list *src, struct block_list *target,
}
return retVal___;
}
-int HP_status_set_hp(struct block_list *bl, unsigned int hp, int flag) {
+int HP_status_set_hp(struct block_list *bl, unsigned int hp, enum status_heal_flag flag) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_status_set_hp_pre > 0) {
- int (*preHookFunc) (struct block_list **bl, unsigned int *hp, int *flag);
+ int (*preHookFunc) (struct block_list **bl, unsigned int *hp, enum status_heal_flag *flag);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_status_set_hp_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_status_set_hp_pre[hIndex].func;
@@ -81271,7 +82082,7 @@ int HP_status_set_hp(struct block_list *bl, unsigned int hp, int flag) {
retVal___ = HPMHooks.source.status.set_hp(bl, hp, flag);
}
if (HPMHooks.count.HP_status_set_hp_post > 0) {
- int (*postHookFunc) (int retVal___, struct block_list *bl, unsigned int hp, int flag);
+ int (*postHookFunc) (int retVal___, struct block_list *bl, unsigned int hp, enum status_heal_flag flag);
for (hIndex = 0; hIndex < HPMHooks.count.HP_status_set_hp_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_status_set_hp_post[hIndex].func;
retVal___ = postHookFunc(retVal___, bl, hp, flag);
@@ -81279,11 +82090,11 @@ int HP_status_set_hp(struct block_list *bl, unsigned int hp, int flag) {
}
return retVal___;
}
-int HP_status_set_sp(struct block_list *bl, unsigned int sp, int flag) {
+int HP_status_set_sp(struct block_list *bl, unsigned int sp, enum status_heal_flag flag) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_status_set_sp_pre > 0) {
- int (*preHookFunc) (struct block_list **bl, unsigned int *sp, int *flag);
+ int (*preHookFunc) (struct block_list **bl, unsigned int *sp, enum status_heal_flag *flag);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_status_set_sp_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_status_set_sp_pre[hIndex].func;
@@ -81298,7 +82109,7 @@ int HP_status_set_sp(struct block_list *bl, unsigned int sp, int flag) {
retVal___ = HPMHooks.source.status.set_sp(bl, sp, flag);
}
if (HPMHooks.count.HP_status_set_sp_post > 0) {
- int (*postHookFunc) (int retVal___, struct block_list *bl, unsigned int sp, int flag);
+ int (*postHookFunc) (int retVal___, struct block_list *bl, unsigned int sp, enum status_heal_flag flag);
for (hIndex = 0; hIndex < HPMHooks.count.HP_status_set_sp_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_status_set_sp_post[hIndex].func;
retVal___ = postHookFunc(retVal___, bl, sp, flag);
@@ -81306,11 +82117,11 @@ int HP_status_set_sp(struct block_list *bl, unsigned int sp, int flag) {
}
return retVal___;
}
-int HP_status_heal(struct block_list *bl, int64 hp, int64 sp, int flag) {
+int HP_status_heal(struct block_list *bl, int64 hp, int64 sp, enum status_heal_flag flag) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_status_heal_pre > 0) {
- int (*preHookFunc) (struct block_list **bl, int64 *hp, int64 *sp, int *flag);
+ int (*preHookFunc) (struct block_list **bl, int64 *hp, int64 *sp, enum status_heal_flag *flag);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_status_heal_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_status_heal_pre[hIndex].func;
@@ -81325,7 +82136,7 @@ int HP_status_heal(struct block_list *bl, int64 hp, int64 sp, int flag) {
retVal___ = HPMHooks.source.status.heal(bl, hp, sp, flag);
}
if (HPMHooks.count.HP_status_heal_post > 0) {
- int (*postHookFunc) (int retVal___, struct block_list *bl, int64 hp, int64 sp, int flag);
+ int (*postHookFunc) (int retVal___, struct block_list *bl, int64 hp, int64 sp, enum status_heal_flag flag);
for (hIndex = 0; hIndex < HPMHooks.count.HP_status_heal_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_status_heal_post[hIndex].func;
retVal___ = postHookFunc(retVal___, bl, hp, sp, flag);
@@ -83243,6 +84054,60 @@ unsigned int HP_status_get_base_maxsp(const struct map_session_data *sd, const s
}
return retVal___;
}
+unsigned int HP_status_get_restart_hp(const struct map_session_data *sd, const struct status_data *st) {
+ int hIndex = 0;
+ unsigned int retVal___ = 0;
+ if (HPMHooks.count.HP_status_get_restart_hp_pre > 0) {
+ unsigned int (*preHookFunc) (const struct map_session_data **sd, const struct status_data **st);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_status_get_restart_hp_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_status_get_restart_hp_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &st);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.status.get_restart_hp(sd, st);
+ }
+ if (HPMHooks.count.HP_status_get_restart_hp_post > 0) {
+ unsigned int (*postHookFunc) (unsigned int retVal___, const struct map_session_data *sd, const struct status_data *st);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_status_get_restart_hp_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_status_get_restart_hp_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, st);
+ }
+ }
+ return retVal___;
+}
+unsigned int HP_status_get_restart_sp(const struct map_session_data *sd, const struct status_data *st) {
+ int hIndex = 0;
+ unsigned int retVal___ = 0;
+ if (HPMHooks.count.HP_status_get_restart_sp_pre > 0) {
+ unsigned int (*preHookFunc) (const struct map_session_data **sd, const struct status_data **st);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_status_get_restart_sp_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_status_get_restart_sp_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &st);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.status.get_restart_sp(sd, st);
+ }
+ if (HPMHooks.count.HP_status_get_restart_sp_post > 0) {
+ unsigned int (*postHookFunc) (unsigned int retVal___, const struct map_session_data *sd, const struct status_data *st);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_status_get_restart_sp_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_status_get_restart_sp_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, st);
+ }
+ }
+ return retVal___;
+}
int HP_status_calc_npc_(struct npc_data *nd, enum e_status_calc_opt opt) {
int hIndex = 0;
int retVal___ = 0;
@@ -87421,11 +88286,11 @@ int HP_unit_blown(struct block_list *bl, int dx, int dy, int count, int flag) {
}
return retVal___;
}
-int HP_unit_warp(struct block_list *bl, short m, short x, short y, clr_type type) {
+int HP_unit_warp(struct block_list *bl, short m, short x, short y, enum clr_type type) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_unit_warp_pre > 0) {
- int (*preHookFunc) (struct block_list **bl, short *m, short *x, short *y, clr_type *type);
+ int (*preHookFunc) (struct block_list **bl, short *m, short *x, short *y, enum clr_type *type);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_unit_warp_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_unit_warp_pre[hIndex].func;
@@ -87440,7 +88305,7 @@ int HP_unit_warp(struct block_list *bl, short m, short x, short y, clr_type type
retVal___ = HPMHooks.source.unit.warp(bl, m, x, y, type);
}
if (HPMHooks.count.HP_unit_warp_post > 0) {
- int (*postHookFunc) (int retVal___, struct block_list *bl, short m, short x, short y, clr_type type);
+ int (*postHookFunc) (int retVal___, struct block_list *bl, short m, short x, short y, enum clr_type type);
for (hIndex = 0; hIndex < HPMHooks.count.HP_unit_warp_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_unit_warp_post[hIndex].func;
retVal___ = postHookFunc(retVal___, bl, m, x, y, type);
@@ -88120,11 +88985,11 @@ int HP_unit_changeviewsize(struct block_list *bl, short size) {
}
return retVal___;
}
-int HP_unit_remove_map(struct block_list *bl, clr_type clrtype, const char *file, int line, const char *func) {
+int HP_unit_remove_map(struct block_list *bl, enum clr_type clrtype, const char *file, int line, const char *func) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_unit_remove_map_pre > 0) {
- int (*preHookFunc) (struct block_list **bl, clr_type *clrtype, const char **file, int *line, const char **func);
+ int (*preHookFunc) (struct block_list **bl, enum clr_type *clrtype, const char **file, int *line, const char **func);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_unit_remove_map_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_unit_remove_map_pre[hIndex].func;
@@ -88139,7 +89004,7 @@ int HP_unit_remove_map(struct block_list *bl, clr_type clrtype, const char *file
retVal___ = HPMHooks.source.unit.remove_map(bl, clrtype, file, line, func);
}
if (HPMHooks.count.HP_unit_remove_map_post > 0) {
- int (*postHookFunc) (int retVal___, struct block_list *bl, clr_type clrtype, const char *file, int line, const char *func);
+ int (*postHookFunc) (int retVal___, struct block_list *bl, enum clr_type clrtype, const char *file, int line, const char *func);
for (hIndex = 0; hIndex < HPMHooks.count.HP_unit_remove_map_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_unit_remove_map_post[hIndex].func;
retVal___ = postHookFunc(retVal___, bl, clrtype, file, line, func);
@@ -88147,10 +89012,10 @@ int HP_unit_remove_map(struct block_list *bl, clr_type clrtype, const char *file
}
return retVal___;
}
-void HP_unit_remove_map_pc(struct map_session_data *sd, clr_type clrtype) {
+void HP_unit_remove_map_pc(struct map_session_data *sd, enum clr_type clrtype) {
int hIndex = 0;
if (HPMHooks.count.HP_unit_remove_map_pc_pre > 0) {
- void (*preHookFunc) (struct map_session_data **sd, clr_type *clrtype);
+ void (*preHookFunc) (struct map_session_data **sd, enum clr_type *clrtype);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_unit_remove_map_pc_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_unit_remove_map_pc_pre[hIndex].func;
@@ -88165,7 +89030,7 @@ void HP_unit_remove_map_pc(struct map_session_data *sd, clr_type clrtype) {
HPMHooks.source.unit.remove_map_pc(sd, clrtype);
}
if (HPMHooks.count.HP_unit_remove_map_pc_post > 0) {
- void (*postHookFunc) (struct map_session_data *sd, clr_type clrtype);
+ void (*postHookFunc) (struct map_session_data *sd, enum clr_type clrtype);
for (hIndex = 0; hIndex < HPMHooks.count.HP_unit_remove_map_pc_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_unit_remove_map_pc_post[hIndex].func;
postHookFunc(sd, clrtype);
@@ -88199,11 +89064,11 @@ void HP_unit_free_pc(struct map_session_data *sd) {
}
return;
}
-int HP_unit_free(struct block_list *bl, clr_type clrtype) {
+int HP_unit_free(struct block_list *bl, enum clr_type clrtype) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_unit_free_pre > 0) {
- int (*preHookFunc) (struct block_list **bl, clr_type *clrtype);
+ int (*preHookFunc) (struct block_list **bl, enum clr_type *clrtype);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_unit_free_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_unit_free_pre[hIndex].func;
@@ -88218,7 +89083,7 @@ int HP_unit_free(struct block_list *bl, clr_type clrtype) {
retVal___ = HPMHooks.source.unit.free(bl, clrtype);
}
if (HPMHooks.count.HP_unit_free_post > 0) {
- int (*postHookFunc) (int retVal___, struct block_list *bl, clr_type clrtype);
+ int (*postHookFunc) (int retVal___, struct block_list *bl, enum clr_type clrtype);
for (hIndex = 0; hIndex < HPMHooks.count.HP_unit_free_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_unit_free_post[hIndex].func;
retVal___ = postHookFunc(retVal___, bl, clrtype);
diff --git a/src/plugins/HPMHooking/HPMHooking_map.sources.inc b/src/plugins/HPMHooking/HPMHooking_map.sources.inc
index 151a5d8a1..9d5390bb4 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.sources.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.sources.inc
@@ -65,6 +65,7 @@ HPMHooks.source.mutex = *mutex;
HPMHooks.source.npc_chat = *npc_chat;
HPMHooks.source.npc = *npc;
HPMHooks.source.nullpo = *nullpo;
+HPMHooks.source.packets = *packets;
HPMHooks.source.party = *party;
HPMHooks.source.path = *path;
HPMHooks.source.pcg = *pcg;