diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/HPMHooking.c | 2 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking.Defs.inc | 226 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc | 49 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc | 15 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_char.Hooks.inc | 331 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_char.sources.inc | 1 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc | 357 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc | 90 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_map.Hooks.inc | 2253 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_map.sources.inc | 1 |
10 files changed, 3227 insertions, 98 deletions
diff --git a/src/plugins/HPMHooking.c b/src/plugins/HPMHooking.c index ca64aca6a..b477cb5c3 100644 --- a/src/plugins/HPMHooking.c +++ b/src/plugins/HPMHooking.c @@ -48,6 +48,7 @@ PRAGMA_GCC5(GCC diagnostic ignored "-Wdiscarded-qualifiers") #define HPM_SOURCES_INCLUDE "HPMHooking/HPMHooking_char.sources.inc" #include "char/char.h" #include "char/geoip.h" +#include "char/int_achievement.h" #include "char/int_auction.h" #include "char/int_clan.h" #include "char/int_elemental.h" @@ -71,6 +72,7 @@ PRAGMA_GCC5(GCC diagnostic ignored "-Wdiscarded-qualifiers") #define HPM_HOOKS_INCLUDE "HPMHooking/HPMHooking_map.Hooks.inc" #define HPM_POINTS_INCLUDE "HPMHooking/HPMHooking_map.HookingPoints.inc" #define HPM_SOURCES_INCLUDE "HPMHooking/HPMHooking_map.sources.inc" +#include "map/achievement.h" #include "map/atcommand.h" #include "map/battle.h" #include "map/battleground.h" diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc index 6b6c4d4e7..f80dc9003 100644 --- a/src/plugins/HPMHooking/HPMHooking.Defs.inc +++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc @@ -73,6 +73,112 @@ typedef bool (*HPMHOOK_post_account_db_sql_iter_next) (bool retVal___, AccountDB typedef bool (*HPMHOOK_pre_account_db_read_inter) (AccountDB_SQL **db, const char **filename, bool *imported); typedef bool (*HPMHOOK_post_account_db_read_inter) (bool retVal___, AccountDB_SQL *db, const char *filename, bool imported); #endif // LOGIN_ACCOUNT_H +#ifdef MAP_ACHIEVEMENT_H /* achievement */ +typedef void (*HPMHOOK_pre_achievement_init) (bool *minimal); +typedef void (*HPMHOOK_post_achievement_init) (bool minimal); +typedef void (*HPMHOOK_pre_achievement_final) (void); +typedef void (*HPMHOOK_post_achievement_final) (void); +typedef int (*HPMHOOK_pre_achievement_db_finalize) (union DBKey *key, struct DBData **data, va_list args); +typedef int (*HPMHOOK_post_achievement_db_finalize) (int retVal___, union DBKey key, struct DBData *data, va_list args); +typedef void (*HPMHOOK_pre_achievement_readdb) (void); +typedef void (*HPMHOOK_post_achievement_readdb) (void); +typedef bool (*HPMHOOK_pre_achievement_readdb_objectives_sub) (const struct config_setting_t **conf, int *index, struct achievement_data **entry); +typedef bool (*HPMHOOK_post_achievement_readdb_objectives_sub) (bool retVal___, const struct config_setting_t *conf, int index, struct achievement_data *entry); +typedef bool (*HPMHOOK_pre_achievement_readdb_objectives) (const struct config_setting_t **conf, struct achievement_data **entry); +typedef bool (*HPMHOOK_post_achievement_readdb_objectives) (bool retVal___, const struct config_setting_t *conf, struct achievement_data *entry); +typedef bool (*HPMHOOK_pre_achievement_readdb_validate_criteria_mobid) (const struct config_setting_t **t, struct achievement_objective **obj, enum achievement_types *type, int *entry_id, int *obj_idx); +typedef bool (*HPMHOOK_post_achievement_readdb_validate_criteria_mobid) (bool retVal___, const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx); +typedef bool (*HPMHOOK_pre_achievement_readdb_validate_criteria_jobid) (const struct config_setting_t **t, struct achievement_objective **obj, enum achievement_types *type, int *entry_id, int *obj_idx); +typedef bool (*HPMHOOK_post_achievement_readdb_validate_criteria_jobid) (bool retVal___, const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx); +typedef bool (*HPMHOOK_pre_achievement_readdb_validate_criteria_itemid) (const struct config_setting_t **t, struct achievement_objective **obj, enum achievement_types *type, int *entry_id, int *obj_idx); +typedef bool (*HPMHOOK_post_achievement_readdb_validate_criteria_itemid) (bool retVal___, const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx); +typedef bool (*HPMHOOK_pre_achievement_readdb_validate_criteria_statustype) (const struct config_setting_t **t, struct achievement_objective **obj, enum achievement_types *type, int *entry_id, int *obj_idx); +typedef bool (*HPMHOOK_post_achievement_readdb_validate_criteria_statustype) (bool retVal___, const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx); +typedef bool (*HPMHOOK_pre_achievement_readdb_validate_criteria_itemtype) (const struct config_setting_t **t, struct achievement_objective **obj, enum achievement_types *type, int *entry_id, int *obj_idx); +typedef bool (*HPMHOOK_post_achievement_readdb_validate_criteria_itemtype) (bool retVal___, const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx); +typedef bool (*HPMHOOK_pre_achievement_readdb_validate_criteria_weaponlv) (const struct config_setting_t **t, struct achievement_objective **obj, enum achievement_types *type, int *entry_id, int *obj_idx); +typedef bool (*HPMHOOK_post_achievement_readdb_validate_criteria_weaponlv) (bool retVal___, const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx); +typedef bool (*HPMHOOK_pre_achievement_readdb_validate_criteria_achievement) (const struct config_setting_t **t, struct achievement_objective **obj, enum achievement_types *type, int *entry_id, int *obj_idx); +typedef bool (*HPMHOOK_post_achievement_readdb_validate_criteria_achievement) (bool retVal___, const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx); +typedef bool (*HPMHOOK_pre_achievement_readdb_rewards) (const struct config_setting_t **conf, struct achievement_data **entry, const char **source); +typedef bool (*HPMHOOK_post_achievement_readdb_rewards) (bool retVal___, const struct config_setting_t *conf, struct achievement_data *entry, const char *source); +typedef void (*HPMHOOK_pre_achievement_readdb_validate_reward_items) (const struct config_setting_t **t, struct achievement_data **entry); +typedef void (*HPMHOOK_post_achievement_readdb_validate_reward_items) (const struct config_setting_t *t, struct achievement_data *entry); +typedef bool (*HPMHOOK_pre_achievement_readdb_validate_reward_item_sub) (const struct config_setting_t **t, int *element, struct achievement_data **entry); +typedef bool (*HPMHOOK_post_achievement_readdb_validate_reward_item_sub) (bool retVal___, const struct config_setting_t *t, int element, struct achievement_data *entry); +typedef void (*HPMHOOK_pre_achievement_readdb_validate_reward_bonus) (const struct config_setting_t **t, struct achievement_data **entry, const char **source); +typedef void (*HPMHOOK_post_achievement_readdb_validate_reward_bonus) (const struct config_setting_t *t, struct achievement_data *entry, const char *source); +typedef void (*HPMHOOK_pre_achievement_readdb_validate_reward_titleid) (const struct config_setting_t **t, struct achievement_data **entry); +typedef void (*HPMHOOK_post_achievement_readdb_validate_reward_titleid) (const struct config_setting_t *t, struct achievement_data *entry); +typedef void (*HPMHOOK_pre_achievement_readdb_additional_fields) (const struct config_setting_t **conf, struct achievement_data **entry, const char **source); +typedef void (*HPMHOOK_post_achievement_readdb_additional_fields) (const struct config_setting_t *conf, struct achievement_data *entry, const char *source); +typedef void (*HPMHOOK_pre_achievement_readdb_ranks) (void); +typedef void (*HPMHOOK_post_achievement_readdb_ranks) (void); +typedef const struct achievement_data* (*HPMHOOK_pre_achievement_get) (int *aid); +typedef const struct achievement_data* (*HPMHOOK_post_achievement_get) (const struct achievement_data* retVal___, int aid); +typedef struct achievement* (*HPMHOOK_pre_achievement_ensure) (struct map_session_data **sd, const struct achievement_data **ad); +typedef struct achievement* (*HPMHOOK_post_achievement_ensure) (struct achievement* retVal___, struct map_session_data *sd, const struct achievement_data *ad); +typedef void (*HPMHOOK_pre_achievement_calculate_totals) (const struct map_session_data **sd, int **points, int **completed, int **rank, int **curr_rank_points); +typedef void (*HPMHOOK_post_achievement_calculate_totals) (const struct map_session_data *sd, int *points, int *completed, int *rank, int *curr_rank_points); +typedef bool (*HPMHOOK_pre_achievement_check_complete) (struct map_session_data **sd, const struct achievement_data **ad); +typedef bool (*HPMHOOK_post_achievement_check_complete) (bool retVal___, struct map_session_data *sd, const struct achievement_data *ad); +typedef void (*HPMHOOK_pre_achievement_progress_add) (struct map_session_data **sd, const struct achievement_data **ad, unsigned int *obj_idx, int *progress); +typedef void (*HPMHOOK_post_achievement_progress_add) (struct map_session_data *sd, const struct achievement_data *ad, unsigned int obj_idx, int progress); +typedef void (*HPMHOOK_pre_achievement_progress_set) (struct map_session_data **sd, const struct achievement_data **ad, unsigned int *obj_idx, int *progress); +typedef void (*HPMHOOK_post_achievement_progress_set) (struct map_session_data *sd, const struct achievement_data *ad, unsigned int obj_idx, int progress); +typedef bool (*HPMHOOK_pre_achievement_check_criteria) (const struct achievement_objective **objective, const struct achievement_objective **criteria); +typedef bool (*HPMHOOK_post_achievement_check_criteria) (bool retVal___, const struct achievement_objective *objective, const struct achievement_objective *criteria); +typedef bool (*HPMHOOK_pre_achievement_validate) (struct map_session_data **sd, int *aid, unsigned int *obj_idx, int *progress, bool *additive); +typedef bool (*HPMHOOK_post_achievement_validate) (bool retVal___, struct map_session_data *sd, int aid, unsigned int obj_idx, int progress, bool additive); +typedef int (*HPMHOOK_pre_achievement_validate_type) (struct map_session_data **sd, enum achievement_types *type, const struct achievement_objective **criteria, bool *additive); +typedef int (*HPMHOOK_post_achievement_validate_type) (int retVal___, struct map_session_data *sd, enum achievement_types type, const struct achievement_objective *criteria, bool additive); +typedef void (*HPMHOOK_pre_achievement_validate_mob_kill) (struct map_session_data **sd, int *mob_id); +typedef void (*HPMHOOK_post_achievement_validate_mob_kill) (struct map_session_data *sd, int mob_id); +typedef void (*HPMHOOK_pre_achievement_validate_mob_damage) (struct map_session_data **sd, unsigned int *damage, bool *received); +typedef void (*HPMHOOK_post_achievement_validate_mob_damage) (struct map_session_data *sd, unsigned int damage, bool received); +typedef void (*HPMHOOK_pre_achievement_validate_pc_kill) (struct map_session_data **sd, struct map_session_data **dstsd); +typedef void (*HPMHOOK_post_achievement_validate_pc_kill) (struct map_session_data *sd, struct map_session_data *dstsd); +typedef void (*HPMHOOK_pre_achievement_validate_pc_damage) (struct map_session_data **sd, struct map_session_data **dstsd, unsigned int *damage); +typedef void (*HPMHOOK_post_achievement_validate_pc_damage) (struct map_session_data *sd, struct map_session_data *dstsd, unsigned int damage); +typedef void (*HPMHOOK_pre_achievement_validate_jobchange) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_achievement_validate_jobchange) (struct map_session_data *sd); +typedef void (*HPMHOOK_pre_achievement_validate_stats) (struct map_session_data **sd, enum status_point_types *stat_type, int *progress); +typedef void (*HPMHOOK_post_achievement_validate_stats) (struct map_session_data *sd, enum status_point_types stat_type, int progress); +typedef void (*HPMHOOK_pre_achievement_validate_chatroom_create) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_achievement_validate_chatroom_create) (struct map_session_data *sd); +typedef void (*HPMHOOK_pre_achievement_validate_chatroom_members) (struct map_session_data **sd, int *progress); +typedef void (*HPMHOOK_post_achievement_validate_chatroom_members) (struct map_session_data *sd, int progress); +typedef void (*HPMHOOK_pre_achievement_validate_friend_add) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_achievement_validate_friend_add) (struct map_session_data *sd); +typedef void (*HPMHOOK_pre_achievement_validate_party_create) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_achievement_validate_party_create) (struct map_session_data *sd); +typedef void (*HPMHOOK_pre_achievement_validate_marry) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_achievement_validate_marry) (struct map_session_data *sd); +typedef void (*HPMHOOK_pre_achievement_validate_adopt) (struct map_session_data **sd, bool *parent); +typedef void (*HPMHOOK_post_achievement_validate_adopt) (struct map_session_data *sd, bool parent); +typedef void (*HPMHOOK_pre_achievement_validate_zeny) (struct map_session_data **sd, int *amount); +typedef void (*HPMHOOK_post_achievement_validate_zeny) (struct map_session_data *sd, int amount); +typedef void (*HPMHOOK_pre_achievement_validate_refine) (struct map_session_data **sd, unsigned int *idx, bool *success); +typedef void (*HPMHOOK_post_achievement_validate_refine) (struct map_session_data *sd, unsigned int idx, bool success); +typedef void (*HPMHOOK_pre_achievement_validate_item_get) (struct map_session_data **sd, int *nameid, int *amount); +typedef void (*HPMHOOK_post_achievement_validate_item_get) (struct map_session_data *sd, int nameid, int amount); +typedef void (*HPMHOOK_pre_achievement_validate_item_sell) (struct map_session_data **sd, int *nameid, int *amount); +typedef void (*HPMHOOK_post_achievement_validate_item_sell) (struct map_session_data *sd, int nameid, int amount); +typedef void (*HPMHOOK_pre_achievement_validate_achieve) (struct map_session_data **sd, int *achid); +typedef void (*HPMHOOK_post_achievement_validate_achieve) (struct map_session_data *sd, int achid); +typedef void (*HPMHOOK_pre_achievement_validate_taming) (struct map_session_data **sd, int *class); +typedef void (*HPMHOOK_post_achievement_validate_taming) (struct map_session_data *sd, int class); +typedef void (*HPMHOOK_pre_achievement_validate_achievement_rank) (struct map_session_data **sd, int *rank); +typedef void (*HPMHOOK_post_achievement_validate_achievement_rank) (struct map_session_data *sd, int rank); +typedef bool (*HPMHOOK_pre_achievement_type_requires_criteria) (enum achievement_types *type); +typedef bool (*HPMHOOK_post_achievement_type_requires_criteria) (bool retVal___, enum achievement_types type); +typedef void (*HPMHOOK_pre_achievement_init_titles) (struct map_session_data **sd); +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); +#endif // MAP_ACHIEVEMENT_H #ifdef MAP_ATCOMMAND_H /* atcommand */ typedef void (*HPMHOOK_pre_atcommand_init) (bool *minimal); typedef void (*HPMHOOK_post_atcommand_init) (bool minimal); @@ -1010,6 +1116,8 @@ typedef void (*HPMHOOK_pre_clif_delitem) (struct map_session_data **sd, int *n, typedef void (*HPMHOOK_post_clif_delitem) (struct map_session_data *sd, int n, int amount, short reason); typedef void (*HPMHOOK_pre_clif_takeitem) (struct block_list **src, struct block_list **dst); typedef void (*HPMHOOK_post_clif_takeitem) (struct block_list *src, struct block_list *dst); +typedef void (*HPMHOOK_pre_clif_item_movefailed) (struct map_session_data **sd, int *n); +typedef void (*HPMHOOK_post_clif_item_movefailed) (struct map_session_data *sd, int n); typedef void (*HPMHOOK_pre_clif_item_equip) (short *idx, struct EQUIPITEM_INFO **p, struct item **i, struct item_data **id, int *eqp_pos); typedef void (*HPMHOOK_post_clif_item_equip) (short idx, struct EQUIPITEM_INFO *p, struct item *i, struct item_data *id, int eqp_pos); typedef void (*HPMHOOK_pre_clif_item_normal) (short *idx, struct NORMALITEM_INFO **p, struct item **i, struct item_data **id); @@ -1122,8 +1230,8 @@ typedef void (*HPMHOOK_pre_clif_map_type) (struct map_session_data **sd, enum ma typedef void (*HPMHOOK_post_clif_map_type) (struct map_session_data *sd, enum map_type type); typedef void (*HPMHOOK_pre_clif_maptypeproperty2) (struct block_list **bl, enum send_target *t); typedef void (*HPMHOOK_post_clif_maptypeproperty2) (struct block_list *bl, enum send_target t); -typedef void (*HPMHOOK_pre_clif_changemapserver) (struct map_session_data **sd, unsigned short *map_index, int *x, int *y, uint32 *ip, uint16 *port); -typedef void (*HPMHOOK_post_clif_changemapserver) (struct map_session_data *sd, unsigned short map_index, int x, int y, uint32 ip, uint16 port); +typedef void (*HPMHOOK_pre_clif_changemapserver) (struct map_session_data **sd, unsigned short *map_index, int *x, int *y, uint32 *ip, uint16 *port, char **dnsHost); +typedef void (*HPMHOOK_post_clif_changemapserver) (struct map_session_data *sd, unsigned short map_index, int x, int y, uint32 ip, uint16 port, char *dnsHost); typedef void (*HPMHOOK_pre_clif_changemapserver_airship) (struct map_session_data **sd, unsigned short *map_index, int *x, int *y, uint32 *ip, uint16 *port); typedef void (*HPMHOOK_post_clif_changemapserver_airship) (struct map_session_data *sd, unsigned short map_index, int x, int y, uint32 ip, uint16 port); typedef void (*HPMHOOK_pre_clif_npcbuysell) (struct map_session_data **sd, int *id); @@ -1212,12 +1320,18 @@ typedef void (*HPMHOOK_pre_clif_status_change) (struct block_list **bl, int *typ typedef void (*HPMHOOK_post_clif_status_change) (struct block_list *bl, int type, int flag, int tick, int val1, int val2, int val3); typedef void (*HPMHOOK_pre_clif_insert_card) (struct map_session_data **sd, int *idx_equip, int *idx_card, int *flag); typedef void (*HPMHOOK_post_clif_insert_card) (struct map_session_data *sd, int idx_equip, int idx_card, int flag); -typedef void (*HPMHOOK_pre_clif_inventorylist) (struct map_session_data **sd); -typedef void (*HPMHOOK_post_clif_inventorylist) (struct map_session_data *sd); -typedef void (*HPMHOOK_pre_clif_equiplist) (struct map_session_data **sd); -typedef void (*HPMHOOK_post_clif_equiplist) (struct map_session_data *sd); -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_inventoryList) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_clif_inventoryList) (struct map_session_data *sd); +typedef void (*HPMHOOK_pre_clif_inventoryItems) (struct map_session_data **sd, enum inventory_type *type); +typedef void (*HPMHOOK_post_clif_inventoryItems) (struct map_session_data *sd, enum inventory_type type); +typedef void (*HPMHOOK_pre_clif_equipList) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_clif_equipList) (struct map_session_data *sd); +typedef void (*HPMHOOK_pre_clif_equipItems) (struct map_session_data **sd, enum inventory_type *type); +typedef void (*HPMHOOK_post_clif_equipItems) (struct map_session_data *sd, enum inventory_type type); +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_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); @@ -1460,6 +1574,8 @@ typedef void (*HPMHOOK_pre_clif_msgtable_skill) (struct map_session_data **sd, u typedef void (*HPMHOOK_post_clif_msgtable_skill) (struct map_session_data *sd, uint16 skill_id, enum clif_messages msg_id); typedef void (*HPMHOOK_pre_clif_msgtable_str) (struct map_session_data **sd, enum clif_messages *p1, const char **value); typedef void (*HPMHOOK_post_clif_msgtable_str) (struct map_session_data *sd, enum clif_messages p1, const char *value); +typedef void (*HPMHOOK_pre_clif_msgtable_str_color) (struct map_session_data **sd, enum clif_messages *p1, const char **value, uint32 *color); +typedef void (*HPMHOOK_post_clif_msgtable_str_color) (struct map_session_data *sd, enum clif_messages p1, const char *value, uint32 color); typedef void (*HPMHOOK_pre_clif_msgtable_color) (struct map_session_data **sd, enum clif_messages *p1, uint32 *color); typedef void (*HPMHOOK_post_clif_msgtable_color) (struct map_session_data *sd, enum clif_messages p1, uint32 color); typedef void (*HPMHOOK_pre_clif_message) (const int *fd, const char **mes); @@ -1510,8 +1626,16 @@ typedef void (*HPMHOOK_pre_clif_openvendingAck) (int *fd, int *result); typedef void (*HPMHOOK_post_clif_openvendingAck) (int fd, int result); typedef void (*HPMHOOK_pre_clif_vendingreport) (struct map_session_data **sd, int *index, int *amount, uint32 *char_id, int *zeny); typedef void (*HPMHOOK_post_clif_vendingreport) (struct map_session_data *sd, int index, int amount, uint32 char_id, int zeny); -typedef void (*HPMHOOK_pre_clif_storagelist) (struct map_session_data **sd, struct item **items, int *items_length); -typedef void (*HPMHOOK_post_clif_storagelist) (struct map_session_data *sd, struct item *items, int items_length); +typedef void (*HPMHOOK_pre_clif_storageList) (struct map_session_data **sd, struct item **items, int *items_length); +typedef void (*HPMHOOK_post_clif_storageList) (struct map_session_data *sd, struct item *items, int items_length); +typedef void (*HPMHOOK_pre_clif_guildStorageList) (struct map_session_data **sd, struct item **items, int *items_length); +typedef void (*HPMHOOK_post_clif_guildStorageList) (struct map_session_data *sd, struct item *items, int items_length); +typedef void (*HPMHOOK_pre_clif_storageItems) (struct map_session_data **sd, enum inventory_type *type, struct item **items, int *items_length); +typedef void (*HPMHOOK_post_clif_storageItems) (struct map_session_data *sd, enum inventory_type type, struct item *items, int items_length); +typedef void (*HPMHOOK_pre_clif_inventoryStart) (struct map_session_data **sd, enum inventory_type *type, const char **name); +typedef void (*HPMHOOK_post_clif_inventoryStart) (struct map_session_data *sd, enum inventory_type type, const char *name); +typedef void (*HPMHOOK_pre_clif_inventoryEnd) (struct map_session_data **sd, enum inventory_type *type); +typedef void (*HPMHOOK_post_clif_inventoryEnd) (struct map_session_data *sd, enum inventory_type type); typedef void (*HPMHOOK_pre_clif_updatestorageamount) (struct map_session_data **sd, int *amount, int *max_amount); typedef void (*HPMHOOK_post_clif_updatestorageamount) (struct map_session_data *sd, int amount, int max_amount); typedef void (*HPMHOOK_pre_clif_storageitemadded) (struct map_session_data **sd, struct item **i, int *index, int *amount); @@ -1584,10 +1708,10 @@ typedef void (*HPMHOOK_pre_clif_guild_invite) (struct map_session_data **sd, str typedef void (*HPMHOOK_post_clif_guild_invite) (struct map_session_data *sd, struct guild *g); typedef void (*HPMHOOK_pre_clif_guild_inviteack) (struct map_session_data **sd, int *flag); typedef void (*HPMHOOK_post_clif_guild_inviteack) (struct map_session_data *sd, int flag); -typedef void (*HPMHOOK_pre_clif_guild_leave) (struct map_session_data **sd, const char **name, const char **mes); -typedef void (*HPMHOOK_post_clif_guild_leave) (struct map_session_data *sd, const char *name, const char *mes); -typedef void (*HPMHOOK_pre_clif_guild_expulsion) (struct map_session_data **sd, const char **name, const char **mes, int *account_id); -typedef void (*HPMHOOK_post_clif_guild_expulsion) (struct map_session_data *sd, const char *name, const char *mes, int account_id); +typedef void (*HPMHOOK_pre_clif_guild_leave) (struct map_session_data **sd, const char **name, int *char_id, const char **mes); +typedef void (*HPMHOOK_post_clif_guild_leave) (struct map_session_data *sd, const char *name, int char_id, const char *mes); +typedef void (*HPMHOOK_pre_clif_guild_expulsion) (struct map_session_data **sd, const char **name, int *char_id, const char **mes, int *account_id); +typedef void (*HPMHOOK_post_clif_guild_expulsion) (struct map_session_data *sd, const char *name, int char_id, const char *mes, int account_id); typedef void (*HPMHOOK_pre_clif_guild_positionchanged) (struct guild **g, int *idx); typedef void (*HPMHOOK_post_clif_guild_positionchanged) (struct guild *g, int idx); typedef void (*HPMHOOK_pre_clif_guild_memberpositionchanged) (struct guild **g, int *idx); @@ -1622,6 +1746,10 @@ typedef void (*HPMHOOK_pre_clif_guild_positioninfolist) (struct map_session_data typedef void (*HPMHOOK_post_clif_guild_positioninfolist) (struct map_session_data *sd); typedef void (*HPMHOOK_pre_clif_guild_expulsionlist) (struct map_session_data **sd); typedef void (*HPMHOOK_post_clif_guild_expulsionlist) (struct map_session_data *sd); +typedef void (*HPMHOOK_pre_clif_guild_set_position) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_clif_guild_set_position) (struct map_session_data *sd); +typedef void (*HPMHOOK_pre_clif_guild_position_selected) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_clif_guild_position_selected) (struct map_session_data *sd); typedef bool (*HPMHOOK_pre_clif_validate_emblem) (const uint8 **emblem, unsigned long *emblem_len); typedef bool (*HPMHOOK_post_clif_validate_emblem) (bool retVal___, const uint8 *emblem, unsigned long emblem_len); typedef void (*HPMHOOK_pre_clif_bg_hp) (struct map_session_data **sd); @@ -1884,6 +2012,18 @@ typedef void (*HPMHOOK_pre_clif_navigate_to) (struct map_session_data **sd, cons typedef void (*HPMHOOK_post_clif_navigate_to) (struct map_session_data *sd, const char *mapname, uint16 x, uint16 y, uint8 flag, bool hideWindow, uint16 mob_id); typedef unsigned char (*HPMHOOK_pre_clif_bl_type) (struct block_list **bl); typedef unsigned char (*HPMHOOK_post_clif_bl_type) (unsigned char retVal___, struct block_list *bl); +typedef void (*HPMHOOK_pre_clif_achievement_send_list) (int *fd, struct map_session_data **sd); +typedef void (*HPMHOOK_post_clif_achievement_send_list) (int fd, struct map_session_data *sd); +typedef void (*HPMHOOK_pre_clif_achievement_send_update) (int *fd, struct map_session_data **sd, const struct achievement_data **ad); +typedef void (*HPMHOOK_post_clif_achievement_send_update) (int fd, struct map_session_data *sd, const struct achievement_data *ad); +typedef void (*HPMHOOK_pre_clif_pAchievementGetReward) (int *fd, struct map_session_data **sd); +typedef void (*HPMHOOK_post_clif_pAchievementGetReward) (int fd, struct map_session_data *sd); +typedef void (*HPMHOOK_pre_clif_achievement_reward_ack) (int *fd, struct map_session_data **sd, const struct achievement_data **ad); +typedef void (*HPMHOOK_post_clif_achievement_reward_ack) (int fd, struct map_session_data *sd, const struct achievement_data *ad); +typedef void (*HPMHOOK_pre_clif_change_title_ack) (int *fd, struct map_session_data **sd, int *title_id); +typedef void (*HPMHOOK_post_clif_change_title_ack) (int fd, struct map_session_data *sd, int title_id); +typedef void (*HPMHOOK_pre_clif_pChangeTitle) (int *fd, struct map_session_data **sd); +typedef void (*HPMHOOK_post_clif_pChangeTitle) (int fd, struct map_session_data *sd); typedef void (*HPMHOOK_pre_clif_pWantToConnection) (int *fd, struct map_session_data **sd); typedef void (*HPMHOOK_post_clif_pWantToConnection) (int fd, struct map_session_data *sd); typedef void (*HPMHOOK_pre_clif_pLoadEndAck) (int *fd, struct map_session_data **sd); @@ -2424,6 +2564,10 @@ typedef void (*HPMHOOK_pre_clif_hat_effect) (struct block_list **bl, struct bloc typedef void (*HPMHOOK_post_clif_hat_effect) (struct block_list *bl, struct block_list *tbl, enum send_target target); typedef void (*HPMHOOK_pre_clif_hat_effect_single) (struct block_list **bl, uint16 *effectId, bool *enable); typedef void (*HPMHOOK_post_clif_hat_effect_single) (struct block_list *bl, uint16 effectId, bool enable); +typedef void (*HPMHOOK_pre_clif_overweight_percent) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_clif_overweight_percent) (struct map_session_data *sd); +typedef void (*HPMHOOK_pre_clif_pChangeDress) (int *fd, struct map_session_data **sd); +typedef void (*HPMHOOK_post_clif_pChangeDress) (int fd, struct map_session_data *sd); typedef bool (*HPMHOOK_pre_clif_pAttendanceDB) (void); typedef bool (*HPMHOOK_post_clif_pAttendanceDB) (bool retVal___); typedef bool (*HPMHOOK_pre_clif_attendancedb_libconfig_sub) (struct config_setting_t **it, int *n, const char **source); @@ -2458,6 +2602,8 @@ typedef void (*HPMHOOK_pre_clif_stylist_send_rodexitem) (struct map_session_data typedef void (*HPMHOOK_post_clif_stylist_send_rodexitem) (struct map_session_data *sd, int itemid); typedef void (*HPMHOOK_pre_clif_pReqStyleChange) (int *fd, struct map_session_data **sd); typedef void (*HPMHOOK_post_clif_pReqStyleChange) (int fd, struct map_session_data *sd); +typedef void (*HPMHOOK_pre_clif_pReqStyleChange2) (int *fd, struct map_session_data **sd); +typedef void (*HPMHOOK_post_clif_pReqStyleChange2) (int fd, struct map_session_data *sd); typedef void (*HPMHOOK_pre_clif_cz_req_style_change_sub) (struct map_session_data **sd, int *type, int16 *idx, bool *isitem); typedef void (*HPMHOOK_post_clif_cz_req_style_change_sub) (struct map_session_data *sd, int type, int16 idx, bool isitem); typedef void (*HPMHOOK_pre_clif_style_change_response) (struct map_session_data **sd, enum stylist_shop *flag); @@ -2466,6 +2612,10 @@ typedef void (*HPMHOOK_pre_clif_pPetEvolution) (int *fd, struct map_session_data typedef void (*HPMHOOK_post_clif_pPetEvolution) (int fd, struct map_session_data *sd); typedef void (*HPMHOOK_pre_clif_petEvolutionResult) (int *fd, enum pet_evolution_result *result); typedef void (*HPMHOOK_post_clif_petEvolutionResult) (int fd, enum pet_evolution_result result); +typedef void (*HPMHOOK_pre_clif_party_dead_notification) (struct map_session_data **sd); +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); #endif // MAP_CLIF_H #ifdef COMMON_CORE_H /* cmdline */ typedef void (*HPMHOOK_pre_cmdline_init) (void); @@ -2992,7 +3142,25 @@ typedef bool (*HPMHOOK_pre_instance_valid) (int *instance_id); typedef bool (*HPMHOOK_post_instance_valid) (bool retVal___, int instance_id); typedef int (*HPMHOOK_pre_instance_destroy_timer) (int *tid, int64 *tick, int *id, intptr_t *data); typedef int (*HPMHOOK_post_instance_destroy_timer) (int retVal___, int tid, int64 tick, int id, intptr_t data); +typedef void (*HPMHOOK_pre_instance_force_destroy) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_instance_force_destroy) (struct map_session_data *sd); #endif // MAP_INSTANCE_H +#ifdef CHAR_INT_ACHIEVEMENT_H /* inter_achievement */ +typedef int (*HPMHOOK_pre_inter_achievement_sql_init) (void); +typedef int (*HPMHOOK_post_inter_achievement_sql_init) (int retVal___); +typedef void (*HPMHOOK_pre_inter_achievement_sql_final) (void); +typedef void (*HPMHOOK_post_inter_achievement_sql_final) (void); +typedef int (*HPMHOOK_pre_inter_achievement_tosql) (int *char_id, struct char_achievements **cp, const struct char_achievements **p); +typedef int (*HPMHOOK_post_inter_achievement_tosql) (int retVal___, int char_id, struct char_achievements *cp, const struct char_achievements *p); +typedef bool (*HPMHOOK_pre_inter_achievement_fromsql) (int *char_id, struct char_achievements **a); +typedef bool (*HPMHOOK_post_inter_achievement_fromsql) (bool retVal___, int char_id, struct char_achievements *a); +typedef struct DBData (*HPMHOOK_pre_inter_achievement_ensure_char_achievements) (union DBKey *key, va_list args); +typedef struct DBData (*HPMHOOK_post_inter_achievement_ensure_char_achievements) (struct DBData retVal___, union DBKey key, va_list args); +typedef int (*HPMHOOK_pre_inter_achievement_char_achievements_clear) (union DBKey *key, struct DBData **data, va_list args); +typedef int (*HPMHOOK_post_inter_achievement_char_achievements_clear) (int retVal___, union DBKey key, struct DBData *data, va_list args); +typedef int (*HPMHOOK_pre_inter_achievement_parse_frommap) (int *fd); +typedef int (*HPMHOOK_post_inter_achievement_parse_frommap) (int retVal___, int fd); +#endif // CHAR_INT_ACHIEVEMENT_H #ifdef CHAR_INT_AUCTION_H /* inter_auction */ typedef int (*HPMHOOK_pre_inter_auction_count) (int *char_id, bool *buy); typedef int (*HPMHOOK_post_inter_auction_count) (int retVal___, int char_id, bool buy); @@ -3360,8 +3528,8 @@ typedef int (*HPMHOOK_pre_intif_request_registry) (struct map_session_data **sd, typedef int (*HPMHOOK_post_intif_request_registry) (int retVal___, struct map_session_data *sd, int flag); typedef void (*HPMHOOK_pre_intif_request_account_storage) (const struct map_session_data **sd); typedef void (*HPMHOOK_post_intif_request_account_storage) (const struct map_session_data *sd); -typedef void (*HPMHOOK_pre_intif_send_account_storage) (const struct map_session_data **sd); -typedef void (*HPMHOOK_post_intif_send_account_storage) (const struct map_session_data *sd); +typedef void (*HPMHOOK_pre_intif_send_account_storage) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_intif_send_account_storage) (struct map_session_data *sd); typedef int (*HPMHOOK_pre_intif_request_guild_storage) (int *account_id, int *guild_id); typedef int (*HPMHOOK_post_intif_request_guild_storage) (int retVal___, int account_id, int guild_id); typedef int (*HPMHOOK_pre_intif_send_guild_storage) (int *account_id, struct guild_storage **gstor); @@ -3496,6 +3664,10 @@ typedef void (*HPMHOOK_pre_intif_request_accinfo) (int *u_fd, int *aid, int *gro typedef void (*HPMHOOK_post_intif_request_accinfo) (int u_fd, int aid, int group_lv, char *query); typedef int (*HPMHOOK_pre_intif_CheckForCharServer) (void); typedef int (*HPMHOOK_post_intif_CheckForCharServer) (int retVal___); +typedef void (*HPMHOOK_pre_intif_achievements_request) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_intif_achievements_request) (struct map_session_data *sd); +typedef void (*HPMHOOK_pre_intif_achievements_save) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_intif_achievements_save) (struct map_session_data *sd); typedef void (*HPMHOOK_pre_intif_pWisMessage) (int *fd); typedef void (*HPMHOOK_post_intif_pWisMessage) (int fd); typedef void (*HPMHOOK_pre_intif_pWisEnd) (int *fd); @@ -3634,6 +3806,8 @@ typedef void (*HPMHOOK_pre_intif_pRodexCheckName) (int *fd); typedef void (*HPMHOOK_post_intif_pRodexCheckName) (int fd); typedef void (*HPMHOOK_pre_intif_pRecvClanMemberAction) (int *fd); typedef void (*HPMHOOK_post_intif_pRecvClanMemberAction) (int fd); +typedef void (*HPMHOOK_pre_intif_pAchievementsLoad) (int *fd); +typedef void (*HPMHOOK_post_intif_pAchievementsLoad) (int fd); #endif // MAP_INTIF_H #ifdef LOGIN_IPBAN_H /* ipban */ typedef void (*HPMHOOK_pre_ipban_init) (void); @@ -4274,6 +4448,8 @@ typedef void (*HPMHOOK_pre_map_zone_change) (int *m, struct map_zone_data **zone typedef void (*HPMHOOK_post_map_zone_change) (int m, struct map_zone_data *zone, const char *start, const char *buffer, const char *filepath); typedef void (*HPMHOOK_pre_map_zone_change2) (int *m, struct map_zone_data **zone); typedef void (*HPMHOOK_post_map_zone_change2) (int m, struct map_zone_data *zone); +typedef void (*HPMHOOK_pre_map_zone_reload) (void); +typedef void (*HPMHOOK_post_map_zone_reload) (void); typedef int (*HPMHOOK_pre_map_getcell) (int16 *m, const struct block_list **bl, int16 *x, int16 *y, cell_chk *cellchk); typedef int (*HPMHOOK_post_map_getcell) (int retVal___, int16 m, const struct block_list *bl, int16 x, int16 y, cell_chk cellchk); typedef void (*HPMHOOK_pre_map_setgatcell) (int16 *m, int16 *x, int16 *y, int *gat); @@ -4556,6 +4732,16 @@ typedef int (*HPMHOOK_pre_mapif_send) (int *fd, unsigned char **buf, unsigned in typedef int (*HPMHOOK_post_mapif_send) (int retVal___, int fd, unsigned char *buf, unsigned int len); typedef void (*HPMHOOK_pre_mapif_send_users_count) (int *users); typedef void (*HPMHOOK_post_mapif_send_users_count) (int users); +typedef void (*HPMHOOK_pre_mapif_pLoadAchievements) (int *fd); +typedef void (*HPMHOOK_post_mapif_pLoadAchievements) (int fd); +typedef void (*HPMHOOK_pre_mapif_sAchievementsToMap) (int *fd, int *char_id, const struct char_achievements **p); +typedef void (*HPMHOOK_post_mapif_sAchievementsToMap) (int fd, int char_id, const struct char_achievements *p); +typedef void (*HPMHOOK_pre_mapif_pSaveAchievements) (int *fd); +typedef void (*HPMHOOK_post_mapif_pSaveAchievements) (int fd); +typedef void (*HPMHOOK_pre_mapif_achievement_load) (int *fd, int *char_id); +typedef void (*HPMHOOK_post_mapif_achievement_load) (int fd, int char_id); +typedef void (*HPMHOOK_pre_mapif_achievement_save) (int *char_id, struct char_achievements **p); +typedef void (*HPMHOOK_post_mapif_achievement_save) (int char_id, struct char_achievements *p); typedef void (*HPMHOOK_pre_mapif_auction_message) (int *char_id, unsigned char *result); typedef void (*HPMHOOK_post_mapif_auction_message) (int char_id, unsigned char result); typedef void (*HPMHOOK_pre_mapif_auction_sendlist) (int *fd, int *char_id, short *count, short *pages, unsigned char **buf); @@ -6086,6 +6272,8 @@ typedef bool (*HPMHOOK_pre_pc_check_basicskill) (struct map_session_data **sd, i typedef bool (*HPMHOOK_post_pc_check_basicskill) (bool retVal___, struct map_session_data *sd, int level); 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); #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); @@ -6450,6 +6638,8 @@ typedef bool (*HPMHOOK_pre_script_config_read) (const char **filename, bool *imp typedef bool (*HPMHOOK_post_script_config_read) (bool retVal___, const char *filename, bool imported); typedef int (*HPMHOOK_pre_script_add_str) (const char **p); typedef int (*HPMHOOK_post_script_add_str) (int retVal___, const char *p); +typedef int (*HPMHOOK_pre_script_add_variable) (const char **varname); +typedef int (*HPMHOOK_post_script_add_variable) (int retVal___, const char *varname); typedef const char* (*HPMHOOK_pre_script_get_str) (int *id); typedef const char* (*HPMHOOK_post_script_get_str) (const char* retVal___, int id); typedef int (*HPMHOOK_pre_script_search_str) (const char **p); @@ -7064,8 +7254,8 @@ typedef int (*HPMHOOK_pre_skill_unit_timer_sub) (union DBKey *key, struct DBData typedef int (*HPMHOOK_post_skill_unit_timer_sub) (int retVal___, union DBKey key, struct DBData *data, va_list ap); typedef void (*HPMHOOK_pre_skill_init_unit_layout) (void); typedef void (*HPMHOOK_post_skill_init_unit_layout) (void); -typedef void (*HPMHOOK_pre_skill_init_unit_layout_unknown) (int *skill_idx); -typedef void (*HPMHOOK_post_skill_init_unit_layout_unknown) (int skill_idx); +typedef void (*HPMHOOK_pre_skill_init_unit_layout_unknown) (int *skill_idx, int *pos); +typedef void (*HPMHOOK_post_skill_init_unit_layout_unknown) (int skill_idx, int pos); typedef void (*HPMHOOK_pre_skill_validate_hittype) (struct config_setting_t **conf, struct s_skill_db **sk); typedef void (*HPMHOOK_post_skill_validate_hittype) (struct config_setting_t *conf, struct s_skill_db *sk); typedef void (*HPMHOOK_pre_skill_validate_skilltype) (struct config_setting_t **conf, struct s_skill_db **sk); diff --git a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc index d77174ef5..2b0291453 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc @@ -448,6 +448,20 @@ struct { struct HPMHookPoint *HP_geoip_final_post; struct HPMHookPoint *HP_geoip_init_pre; struct HPMHookPoint *HP_geoip_init_post; + struct HPMHookPoint *HP_inter_achievement_sql_init_pre; + struct HPMHookPoint *HP_inter_achievement_sql_init_post; + struct HPMHookPoint *HP_inter_achievement_sql_final_pre; + struct HPMHookPoint *HP_inter_achievement_sql_final_post; + struct HPMHookPoint *HP_inter_achievement_tosql_pre; + struct HPMHookPoint *HP_inter_achievement_tosql_post; + struct HPMHookPoint *HP_inter_achievement_fromsql_pre; + struct HPMHookPoint *HP_inter_achievement_fromsql_post; + struct HPMHookPoint *HP_inter_achievement_ensure_char_achievements_pre; + struct HPMHookPoint *HP_inter_achievement_ensure_char_achievements_post; + struct HPMHookPoint *HP_inter_achievement_char_achievements_clear_pre; + struct HPMHookPoint *HP_inter_achievement_char_achievements_clear_post; + struct HPMHookPoint *HP_inter_achievement_parse_frommap_pre; + struct HPMHookPoint *HP_inter_achievement_parse_frommap_post; struct HPMHookPoint *HP_inter_auction_count_pre; struct HPMHookPoint *HP_inter_auction_count_post; struct HPMHookPoint *HP_inter_auction_save_pre; @@ -952,6 +966,16 @@ struct { struct HPMHookPoint *HP_mapif_send_post; struct HPMHookPoint *HP_mapif_send_users_count_pre; struct HPMHookPoint *HP_mapif_send_users_count_post; + struct HPMHookPoint *HP_mapif_pLoadAchievements_pre; + struct HPMHookPoint *HP_mapif_pLoadAchievements_post; + struct HPMHookPoint *HP_mapif_sAchievementsToMap_pre; + struct HPMHookPoint *HP_mapif_sAchievementsToMap_post; + struct HPMHookPoint *HP_mapif_pSaveAchievements_pre; + struct HPMHookPoint *HP_mapif_pSaveAchievements_post; + struct HPMHookPoint *HP_mapif_achievement_load_pre; + struct HPMHookPoint *HP_mapif_achievement_load_post; + struct HPMHookPoint *HP_mapif_achievement_save_pre; + struct HPMHookPoint *HP_mapif_achievement_save_post; struct HPMHookPoint *HP_mapif_auction_message_pre; struct HPMHookPoint *HP_mapif_auction_message_post; struct HPMHookPoint *HP_mapif_auction_sendlist_pre; @@ -2047,6 +2071,20 @@ struct { int HP_geoip_final_post; int HP_geoip_init_pre; int HP_geoip_init_post; + int HP_inter_achievement_sql_init_pre; + int HP_inter_achievement_sql_init_post; + int HP_inter_achievement_sql_final_pre; + int HP_inter_achievement_sql_final_post; + int HP_inter_achievement_tosql_pre; + int HP_inter_achievement_tosql_post; + int HP_inter_achievement_fromsql_pre; + int HP_inter_achievement_fromsql_post; + int HP_inter_achievement_ensure_char_achievements_pre; + int HP_inter_achievement_ensure_char_achievements_post; + int HP_inter_achievement_char_achievements_clear_pre; + int HP_inter_achievement_char_achievements_clear_post; + int HP_inter_achievement_parse_frommap_pre; + int HP_inter_achievement_parse_frommap_post; int HP_inter_auction_count_pre; int HP_inter_auction_count_post; int HP_inter_auction_save_pre; @@ -2551,6 +2589,16 @@ struct { int HP_mapif_send_post; int HP_mapif_send_users_count_pre; int HP_mapif_send_users_count_post; + int HP_mapif_pLoadAchievements_pre; + int HP_mapif_pLoadAchievements_post; + int HP_mapif_sAchievementsToMap_pre; + int HP_mapif_sAchievementsToMap_post; + int HP_mapif_pSaveAchievements_pre; + int HP_mapif_pSaveAchievements_post; + int HP_mapif_achievement_load_pre; + int HP_mapif_achievement_load_post; + int HP_mapif_achievement_save_pre; + int HP_mapif_achievement_save_post; int HP_mapif_auction_message_pre; int HP_mapif_auction_message_post; int HP_mapif_auction_sendlist_pre; @@ -3232,6 +3280,7 @@ struct { struct db_interface DB; struct des_interface des; struct geoip_interface geoip; + struct inter_achievement_interface inter_achievement; struct inter_auction_interface inter_auction; struct inter_clan_interface inter_clan; struct inter_elemental_interface inter_elemental; diff --git a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc index d91cc43c8..cb6ae1bb8 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc @@ -245,6 +245,14 @@ struct HookingPointData HookingPoints[] = { { HP_POP(geoip->getcountry, HP_geoip_getcountry) }, { HP_POP(geoip->final, HP_geoip_final) }, { HP_POP(geoip->init, HP_geoip_init) }, +/* inter_achievement_interface */ + { HP_POP(inter_achievement->sql_init, HP_inter_achievement_sql_init) }, + { HP_POP(inter_achievement->sql_final, HP_inter_achievement_sql_final) }, + { HP_POP(inter_achievement->tosql, HP_inter_achievement_tosql) }, + { HP_POP(inter_achievement->fromsql, HP_inter_achievement_fromsql) }, + { HP_POP(inter_achievement->ensure_char_achievements, HP_inter_achievement_ensure_char_achievements) }, + { HP_POP(inter_achievement->char_achievements_clear, HP_inter_achievement_char_achievements_clear) }, + { HP_POP(inter_achievement->parse_frommap, HP_inter_achievement_parse_frommap) }, /* inter_auction_interface */ { HP_POP(inter_auction->count, HP_inter_auction_count) }, { HP_POP(inter_auction->save, HP_inter_auction_save) }, @@ -513,6 +521,11 @@ struct HookingPointData HookingPoints[] = { { HP_POP(mapif->sendallwos, HP_mapif_sendallwos) }, { HP_POP(mapif->send, HP_mapif_send) }, { HP_POP(mapif->send_users_count, HP_mapif_send_users_count) }, + { HP_POP(mapif->pLoadAchievements, HP_mapif_pLoadAchievements) }, + { HP_POP(mapif->sAchievementsToMap, HP_mapif_sAchievementsToMap) }, + { HP_POP(mapif->pSaveAchievements, HP_mapif_pSaveAchievements) }, + { HP_POP(mapif->achievement_load, HP_mapif_achievement_load) }, + { HP_POP(mapif->achievement_save, HP_mapif_achievement_save) }, { HP_POP(mapif->auction_message, HP_mapif_auction_message) }, { HP_POP(mapif->auction_sendlist, HP_mapif_auction_sendlist) }, { HP_POP(mapif->parse_auction_requestlist, HP_mapif_parse_auction_requestlist) }, @@ -865,4 +878,4 @@ struct HookingPointData HookingPoints[] = { { HP_POP(timer->final, HP_timer_final) }, }; -int HookingPointsLenMax = 42; +int HookingPointsLenMax = 43; diff --git a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc index 831c9da63..767c7d24e 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc @@ -5640,6 +5640,207 @@ void HP_geoip_init(void) { } return; } +/* inter_achievement_interface */ +int HP_inter_achievement_sql_init(void) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_inter_achievement_sql_init_pre > 0) { + int (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_achievement_sql_init_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_inter_achievement_sql_init_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.inter_achievement.sql_init(); + } + if (HPMHooks.count.HP_inter_achievement_sql_init_post > 0) { + int (*postHookFunc) (int retVal___); + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_achievement_sql_init_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_inter_achievement_sql_init_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +void HP_inter_achievement_sql_final(void) { + int hIndex = 0; + if (HPMHooks.count.HP_inter_achievement_sql_final_pre > 0) { + void (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_achievement_sql_final_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_inter_achievement_sql_final_pre[hIndex].func; + preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.inter_achievement.sql_final(); + } + if (HPMHooks.count.HP_inter_achievement_sql_final_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_achievement_sql_final_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_inter_achievement_sql_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_inter_achievement_tosql(int char_id, struct char_achievements *cp, const struct char_achievements *p) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_inter_achievement_tosql_pre > 0) { + int (*preHookFunc) (int *char_id, struct char_achievements **cp, const struct char_achievements **p); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_achievement_tosql_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_inter_achievement_tosql_pre[hIndex].func; + retVal___ = preHookFunc(&char_id, &cp, &p); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.inter_achievement.tosql(char_id, cp, p); + } + if (HPMHooks.count.HP_inter_achievement_tosql_post > 0) { + int (*postHookFunc) (int retVal___, int char_id, struct char_achievements *cp, const struct char_achievements *p); + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_achievement_tosql_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_inter_achievement_tosql_post[hIndex].func; + retVal___ = postHookFunc(retVal___, char_id, cp, p); + } + } + return retVal___; +} +bool HP_inter_achievement_fromsql(int char_id, struct char_achievements *a) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_inter_achievement_fromsql_pre > 0) { + bool (*preHookFunc) (int *char_id, struct char_achievements **a); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_achievement_fromsql_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_inter_achievement_fromsql_pre[hIndex].func; + retVal___ = preHookFunc(&char_id, &a); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.inter_achievement.fromsql(char_id, a); + } + if (HPMHooks.count.HP_inter_achievement_fromsql_post > 0) { + bool (*postHookFunc) (bool retVal___, int char_id, struct char_achievements *a); + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_achievement_fromsql_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_inter_achievement_fromsql_post[hIndex].func; + retVal___ = postHookFunc(retVal___, char_id, a); + } + } + return retVal___; +} +struct DBData HP_inter_achievement_ensure_char_achievements(union DBKey key, va_list args) { + int hIndex = 0; + struct DBData retVal___ = { 0 }; + if (HPMHooks.count.HP_inter_achievement_ensure_char_achievements_pre > 0) { + struct DBData (*preHookFunc) (union DBKey *key, va_list args); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_achievement_ensure_char_achievements_pre; hIndex++) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_inter_achievement_ensure_char_achievements_pre[hIndex].func; + retVal___ = preHookFunc(&key, args___copy); + va_end(args___copy); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list args___copy; va_copy(args___copy, args); + retVal___ = HPMHooks.source.inter_achievement.ensure_char_achievements(key, args___copy); + va_end(args___copy); + } + if (HPMHooks.count.HP_inter_achievement_ensure_char_achievements_post > 0) { + struct DBData (*postHookFunc) (struct DBData retVal___, union DBKey key, va_list args); + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_achievement_ensure_char_achievements_post; hIndex++) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_inter_achievement_ensure_char_achievements_post[hIndex].func; + retVal___ = postHookFunc(retVal___, key, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +int HP_inter_achievement_char_achievements_clear(union DBKey key, struct DBData *data, va_list args) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_inter_achievement_char_achievements_clear_pre > 0) { + int (*preHookFunc) (union DBKey *key, struct DBData **data, va_list args); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_achievement_char_achievements_clear_pre; hIndex++) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_inter_achievement_char_achievements_clear_pre[hIndex].func; + retVal___ = preHookFunc(&key, &data, args___copy); + va_end(args___copy); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list args___copy; va_copy(args___copy, args); + retVal___ = HPMHooks.source.inter_achievement.char_achievements_clear(key, data, args___copy); + va_end(args___copy); + } + if (HPMHooks.count.HP_inter_achievement_char_achievements_clear_post > 0) { + int (*postHookFunc) (int retVal___, union DBKey key, struct DBData *data, va_list args); + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_achievement_char_achievements_clear_post; hIndex++) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_inter_achievement_char_achievements_clear_post[hIndex].func; + retVal___ = postHookFunc(retVal___, key, data, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +int HP_inter_achievement_parse_frommap(int fd) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_inter_achievement_parse_frommap_pre > 0) { + int (*preHookFunc) (int *fd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_achievement_parse_frommap_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_inter_achievement_parse_frommap_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.inter_achievement.parse_frommap(fd); + } + if (HPMHooks.count.HP_inter_achievement_parse_frommap_post > 0) { + int (*postHookFunc) (int retVal___, int fd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_achievement_parse_frommap_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_inter_achievement_parse_frommap_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fd); + } + } + return retVal___; +} /* inter_auction_interface */ int HP_inter_auction_count(int char_id, bool buy) { int hIndex = 0; @@ -12430,6 +12631,136 @@ void HP_mapif_send_users_count(int users) { } return; } +void HP_mapif_pLoadAchievements(int fd) { + int hIndex = 0; + if (HPMHooks.count.HP_mapif_pLoadAchievements_pre > 0) { + void (*preHookFunc) (int *fd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_pLoadAchievements_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapif_pLoadAchievements_pre[hIndex].func; + preHookFunc(&fd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapif.pLoadAchievements(fd); + } + if (HPMHooks.count.HP_mapif_pLoadAchievements_post > 0) { + void (*postHookFunc) (int fd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_pLoadAchievements_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapif_pLoadAchievements_post[hIndex].func; + postHookFunc(fd); + } + } + return; +} +void HP_mapif_sAchievementsToMap(int fd, int char_id, const struct char_achievements *p) { + int hIndex = 0; + if (HPMHooks.count.HP_mapif_sAchievementsToMap_pre > 0) { + void (*preHookFunc) (int *fd, int *char_id, const struct char_achievements **p); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_sAchievementsToMap_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapif_sAchievementsToMap_pre[hIndex].func; + preHookFunc(&fd, &char_id, &p); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapif.sAchievementsToMap(fd, char_id, p); + } + if (HPMHooks.count.HP_mapif_sAchievementsToMap_post > 0) { + void (*postHookFunc) (int fd, int char_id, const struct char_achievements *p); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_sAchievementsToMap_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapif_sAchievementsToMap_post[hIndex].func; + postHookFunc(fd, char_id, p); + } + } + return; +} +void HP_mapif_pSaveAchievements(int fd) { + int hIndex = 0; + if (HPMHooks.count.HP_mapif_pSaveAchievements_pre > 0) { + void (*preHookFunc) (int *fd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_pSaveAchievements_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapif_pSaveAchievements_pre[hIndex].func; + preHookFunc(&fd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapif.pSaveAchievements(fd); + } + if (HPMHooks.count.HP_mapif_pSaveAchievements_post > 0) { + void (*postHookFunc) (int fd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_pSaveAchievements_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapif_pSaveAchievements_post[hIndex].func; + postHookFunc(fd); + } + } + return; +} +void HP_mapif_achievement_load(int fd, int char_id) { + int hIndex = 0; + if (HPMHooks.count.HP_mapif_achievement_load_pre > 0) { + void (*preHookFunc) (int *fd, int *char_id); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_achievement_load_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapif_achievement_load_pre[hIndex].func; + preHookFunc(&fd, &char_id); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapif.achievement_load(fd, char_id); + } + if (HPMHooks.count.HP_mapif_achievement_load_post > 0) { + void (*postHookFunc) (int fd, int char_id); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_achievement_load_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapif_achievement_load_post[hIndex].func; + postHookFunc(fd, char_id); + } + } + return; +} +void HP_mapif_achievement_save(int char_id, struct char_achievements *p) { + int hIndex = 0; + if (HPMHooks.count.HP_mapif_achievement_save_pre > 0) { + void (*preHookFunc) (int *char_id, struct char_achievements **p); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_achievement_save_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapif_achievement_save_pre[hIndex].func; + preHookFunc(&char_id, &p); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapif.achievement_save(char_id, p); + } + if (HPMHooks.count.HP_mapif_achievement_save_post > 0) { + void (*postHookFunc) (int char_id, struct char_achievements *p); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_achievement_save_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapif_achievement_save_post[hIndex].func; + postHookFunc(char_id, p); + } + } + return; +} void HP_mapif_auction_message(int char_id, unsigned char result) { int hIndex = 0; if (HPMHooks.count.HP_mapif_auction_message_pre > 0) { diff --git a/src/plugins/HPMHooking/HPMHooking_char.sources.inc b/src/plugins/HPMHooking/HPMHooking_char.sources.inc index 9ba9e129e..0d69cd755 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.sources.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.sources.inc @@ -33,6 +33,7 @@ HPMHooks.source.core = *core; HPMHooks.source.DB = *DB; HPMHooks.source.des = *des; HPMHooks.source.geoip = *geoip; +HPMHooks.source.inter_achievement = *inter_achievement; HPMHooks.source.inter_auction = *inter_auction; HPMHooks.source.inter_clan = *inter_clan; HPMHooks.source.inter_elemental = *inter_elemental; diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc index 7d0e12e93..8762975e1 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc @@ -32,6 +32,110 @@ struct { struct HPMHookPoint *HP_HCache_check_post; struct HPMHookPoint *HP_HCache_open_pre; struct HPMHookPoint *HP_HCache_open_post; + struct HPMHookPoint *HP_achievement_init_pre; + struct HPMHookPoint *HP_achievement_init_post; + struct HPMHookPoint *HP_achievement_final_pre; + struct HPMHookPoint *HP_achievement_final_post; + struct HPMHookPoint *HP_achievement_db_finalize_pre; + struct HPMHookPoint *HP_achievement_db_finalize_post; + struct HPMHookPoint *HP_achievement_readdb_pre; + struct HPMHookPoint *HP_achievement_readdb_post; + struct HPMHookPoint *HP_achievement_readdb_objectives_sub_pre; + struct HPMHookPoint *HP_achievement_readdb_objectives_sub_post; + struct HPMHookPoint *HP_achievement_readdb_objectives_pre; + struct HPMHookPoint *HP_achievement_readdb_objectives_post; + struct HPMHookPoint *HP_achievement_readdb_validate_criteria_mobid_pre; + struct HPMHookPoint *HP_achievement_readdb_validate_criteria_mobid_post; + struct HPMHookPoint *HP_achievement_readdb_validate_criteria_jobid_pre; + struct HPMHookPoint *HP_achievement_readdb_validate_criteria_jobid_post; + struct HPMHookPoint *HP_achievement_readdb_validate_criteria_itemid_pre; + struct HPMHookPoint *HP_achievement_readdb_validate_criteria_itemid_post; + struct HPMHookPoint *HP_achievement_readdb_validate_criteria_statustype_pre; + struct HPMHookPoint *HP_achievement_readdb_validate_criteria_statustype_post; + struct HPMHookPoint *HP_achievement_readdb_validate_criteria_itemtype_pre; + struct HPMHookPoint *HP_achievement_readdb_validate_criteria_itemtype_post; + struct HPMHookPoint *HP_achievement_readdb_validate_criteria_weaponlv_pre; + struct HPMHookPoint *HP_achievement_readdb_validate_criteria_weaponlv_post; + struct HPMHookPoint *HP_achievement_readdb_validate_criteria_achievement_pre; + struct HPMHookPoint *HP_achievement_readdb_validate_criteria_achievement_post; + struct HPMHookPoint *HP_achievement_readdb_rewards_pre; + struct HPMHookPoint *HP_achievement_readdb_rewards_post; + struct HPMHookPoint *HP_achievement_readdb_validate_reward_items_pre; + struct HPMHookPoint *HP_achievement_readdb_validate_reward_items_post; + struct HPMHookPoint *HP_achievement_readdb_validate_reward_item_sub_pre; + struct HPMHookPoint *HP_achievement_readdb_validate_reward_item_sub_post; + struct HPMHookPoint *HP_achievement_readdb_validate_reward_bonus_pre; + struct HPMHookPoint *HP_achievement_readdb_validate_reward_bonus_post; + struct HPMHookPoint *HP_achievement_readdb_validate_reward_titleid_pre; + struct HPMHookPoint *HP_achievement_readdb_validate_reward_titleid_post; + struct HPMHookPoint *HP_achievement_readdb_additional_fields_pre; + struct HPMHookPoint *HP_achievement_readdb_additional_fields_post; + struct HPMHookPoint *HP_achievement_readdb_ranks_pre; + struct HPMHookPoint *HP_achievement_readdb_ranks_post; + struct HPMHookPoint *HP_achievement_get_pre; + struct HPMHookPoint *HP_achievement_get_post; + struct HPMHookPoint *HP_achievement_ensure_pre; + struct HPMHookPoint *HP_achievement_ensure_post; + struct HPMHookPoint *HP_achievement_calculate_totals_pre; + struct HPMHookPoint *HP_achievement_calculate_totals_post; + struct HPMHookPoint *HP_achievement_check_complete_pre; + struct HPMHookPoint *HP_achievement_check_complete_post; + struct HPMHookPoint *HP_achievement_progress_add_pre; + struct HPMHookPoint *HP_achievement_progress_add_post; + struct HPMHookPoint *HP_achievement_progress_set_pre; + struct HPMHookPoint *HP_achievement_progress_set_post; + struct HPMHookPoint *HP_achievement_check_criteria_pre; + struct HPMHookPoint *HP_achievement_check_criteria_post; + struct HPMHookPoint *HP_achievement_validate_pre; + struct HPMHookPoint *HP_achievement_validate_post; + struct HPMHookPoint *HP_achievement_validate_type_pre; + struct HPMHookPoint *HP_achievement_validate_type_post; + struct HPMHookPoint *HP_achievement_validate_mob_kill_pre; + struct HPMHookPoint *HP_achievement_validate_mob_kill_post; + struct HPMHookPoint *HP_achievement_validate_mob_damage_pre; + struct HPMHookPoint *HP_achievement_validate_mob_damage_post; + struct HPMHookPoint *HP_achievement_validate_pc_kill_pre; + struct HPMHookPoint *HP_achievement_validate_pc_kill_post; + struct HPMHookPoint *HP_achievement_validate_pc_damage_pre; + struct HPMHookPoint *HP_achievement_validate_pc_damage_post; + struct HPMHookPoint *HP_achievement_validate_jobchange_pre; + struct HPMHookPoint *HP_achievement_validate_jobchange_post; + struct HPMHookPoint *HP_achievement_validate_stats_pre; + struct HPMHookPoint *HP_achievement_validate_stats_post; + struct HPMHookPoint *HP_achievement_validate_chatroom_create_pre; + struct HPMHookPoint *HP_achievement_validate_chatroom_create_post; + struct HPMHookPoint *HP_achievement_validate_chatroom_members_pre; + struct HPMHookPoint *HP_achievement_validate_chatroom_members_post; + struct HPMHookPoint *HP_achievement_validate_friend_add_pre; + struct HPMHookPoint *HP_achievement_validate_friend_add_post; + struct HPMHookPoint *HP_achievement_validate_party_create_pre; + struct HPMHookPoint *HP_achievement_validate_party_create_post; + struct HPMHookPoint *HP_achievement_validate_marry_pre; + struct HPMHookPoint *HP_achievement_validate_marry_post; + struct HPMHookPoint *HP_achievement_validate_adopt_pre; + struct HPMHookPoint *HP_achievement_validate_adopt_post; + struct HPMHookPoint *HP_achievement_validate_zeny_pre; + struct HPMHookPoint *HP_achievement_validate_zeny_post; + struct HPMHookPoint *HP_achievement_validate_refine_pre; + struct HPMHookPoint *HP_achievement_validate_refine_post; + struct HPMHookPoint *HP_achievement_validate_item_get_pre; + struct HPMHookPoint *HP_achievement_validate_item_get_post; + struct HPMHookPoint *HP_achievement_validate_item_sell_pre; + struct HPMHookPoint *HP_achievement_validate_item_sell_post; + struct HPMHookPoint *HP_achievement_validate_achieve_pre; + struct HPMHookPoint *HP_achievement_validate_achieve_post; + struct HPMHookPoint *HP_achievement_validate_taming_pre; + struct HPMHookPoint *HP_achievement_validate_taming_post; + struct HPMHookPoint *HP_achievement_validate_achievement_rank_pre; + struct HPMHookPoint *HP_achievement_validate_achievement_rank_post; + struct HPMHookPoint *HP_achievement_type_requires_criteria_pre; + struct HPMHookPoint *HP_achievement_type_requires_criteria_post; + struct HPMHookPoint *HP_achievement_init_titles_pre; + struct HPMHookPoint *HP_achievement_init_titles_post; + struct HPMHookPoint *HP_achievement_check_title_pre; + struct HPMHookPoint *HP_achievement_check_title_post; + struct HPMHookPoint *HP_achievement_get_rewards_pre; + struct HPMHookPoint *HP_achievement_get_rewards_post; struct HPMHookPoint *HP_atcommand_init_pre; struct HPMHookPoint *HP_atcommand_init_post; struct HPMHookPoint *HP_atcommand_final_pre; @@ -604,6 +708,8 @@ struct { struct HPMHookPoint *HP_clif_delitem_post; struct HPMHookPoint *HP_clif_takeitem_pre; struct HPMHookPoint *HP_clif_takeitem_post; + struct HPMHookPoint *HP_clif_item_movefailed_pre; + struct HPMHookPoint *HP_clif_item_movefailed_post; struct HPMHookPoint *HP_clif_item_equip_pre; struct HPMHookPoint *HP_clif_item_equip_post; struct HPMHookPoint *HP_clif_item_normal_pre; @@ -806,12 +912,18 @@ struct { struct HPMHookPoint *HP_clif_status_change_post; struct HPMHookPoint *HP_clif_insert_card_pre; struct HPMHookPoint *HP_clif_insert_card_post; - struct HPMHookPoint *HP_clif_inventorylist_pre; - struct HPMHookPoint *HP_clif_inventorylist_post; - struct HPMHookPoint *HP_clif_equiplist_pre; - struct HPMHookPoint *HP_clif_equiplist_post; - struct HPMHookPoint *HP_clif_cartlist_pre; - struct HPMHookPoint *HP_clif_cartlist_post; + struct HPMHookPoint *HP_clif_inventoryList_pre; + struct HPMHookPoint *HP_clif_inventoryList_post; + struct HPMHookPoint *HP_clif_inventoryItems_pre; + struct HPMHookPoint *HP_clif_inventoryItems_post; + struct HPMHookPoint *HP_clif_equipList_pre; + struct HPMHookPoint *HP_clif_equipList_post; + struct HPMHookPoint *HP_clif_equipItems_pre; + struct HPMHookPoint *HP_clif_equipItems_post; + struct HPMHookPoint *HP_clif_cartList_pre; + struct HPMHookPoint *HP_clif_cartList_post; + struct HPMHookPoint *HP_clif_cartItems_pre; + struct HPMHookPoint *HP_clif_cartItems_post; struct HPMHookPoint *HP_clif_favorite_item_pre; struct HPMHookPoint *HP_clif_favorite_item_post; struct HPMHookPoint *HP_clif_clearcart_pre; @@ -1054,6 +1166,8 @@ struct { struct HPMHookPoint *HP_clif_msgtable_skill_post; struct HPMHookPoint *HP_clif_msgtable_str_pre; struct HPMHookPoint *HP_clif_msgtable_str_post; + struct HPMHookPoint *HP_clif_msgtable_str_color_pre; + struct HPMHookPoint *HP_clif_msgtable_str_color_post; struct HPMHookPoint *HP_clif_msgtable_color_pre; struct HPMHookPoint *HP_clif_msgtable_color_post; struct HPMHookPoint *HP_clif_message_pre; @@ -1104,8 +1218,16 @@ struct { struct HPMHookPoint *HP_clif_openvendingAck_post; struct HPMHookPoint *HP_clif_vendingreport_pre; struct HPMHookPoint *HP_clif_vendingreport_post; - struct HPMHookPoint *HP_clif_storagelist_pre; - struct HPMHookPoint *HP_clif_storagelist_post; + struct HPMHookPoint *HP_clif_storageList_pre; + struct HPMHookPoint *HP_clif_storageList_post; + struct HPMHookPoint *HP_clif_guildStorageList_pre; + struct HPMHookPoint *HP_clif_guildStorageList_post; + struct HPMHookPoint *HP_clif_storageItems_pre; + struct HPMHookPoint *HP_clif_storageItems_post; + struct HPMHookPoint *HP_clif_inventoryStart_pre; + struct HPMHookPoint *HP_clif_inventoryStart_post; + struct HPMHookPoint *HP_clif_inventoryEnd_pre; + struct HPMHookPoint *HP_clif_inventoryEnd_post; struct HPMHookPoint *HP_clif_updatestorageamount_pre; struct HPMHookPoint *HP_clif_updatestorageamount_post; struct HPMHookPoint *HP_clif_storageitemadded_pre; @@ -1216,6 +1338,10 @@ struct { struct HPMHookPoint *HP_clif_guild_positioninfolist_post; struct HPMHookPoint *HP_clif_guild_expulsionlist_pre; struct HPMHookPoint *HP_clif_guild_expulsionlist_post; + struct HPMHookPoint *HP_clif_guild_set_position_pre; + struct HPMHookPoint *HP_clif_guild_set_position_post; + struct HPMHookPoint *HP_clif_guild_position_selected_pre; + struct HPMHookPoint *HP_clif_guild_position_selected_post; struct HPMHookPoint *HP_clif_validate_emblem_pre; struct HPMHookPoint *HP_clif_validate_emblem_post; struct HPMHookPoint *HP_clif_bg_hp_pre; @@ -1478,6 +1604,18 @@ struct { struct HPMHookPoint *HP_clif_navigate_to_post; struct HPMHookPoint *HP_clif_bl_type_pre; struct HPMHookPoint *HP_clif_bl_type_post; + struct HPMHookPoint *HP_clif_achievement_send_list_pre; + struct HPMHookPoint *HP_clif_achievement_send_list_post; + struct HPMHookPoint *HP_clif_achievement_send_update_pre; + struct HPMHookPoint *HP_clif_achievement_send_update_post; + struct HPMHookPoint *HP_clif_pAchievementGetReward_pre; + struct HPMHookPoint *HP_clif_pAchievementGetReward_post; + struct HPMHookPoint *HP_clif_achievement_reward_ack_pre; + struct HPMHookPoint *HP_clif_achievement_reward_ack_post; + struct HPMHookPoint *HP_clif_change_title_ack_pre; + struct HPMHookPoint *HP_clif_change_title_ack_post; + struct HPMHookPoint *HP_clif_pChangeTitle_pre; + struct HPMHookPoint *HP_clif_pChangeTitle_post; struct HPMHookPoint *HP_clif_pWantToConnection_pre; struct HPMHookPoint *HP_clif_pWantToConnection_post; struct HPMHookPoint *HP_clif_pLoadEndAck_pre; @@ -2018,6 +2156,10 @@ struct { struct HPMHookPoint *HP_clif_hat_effect_post; struct HPMHookPoint *HP_clif_hat_effect_single_pre; struct HPMHookPoint *HP_clif_hat_effect_single_post; + struct HPMHookPoint *HP_clif_overweight_percent_pre; + struct HPMHookPoint *HP_clif_overweight_percent_post; + struct HPMHookPoint *HP_clif_pChangeDress_pre; + struct HPMHookPoint *HP_clif_pChangeDress_post; struct HPMHookPoint *HP_clif_pAttendanceDB_pre; struct HPMHookPoint *HP_clif_pAttendanceDB_post; struct HPMHookPoint *HP_clif_attendancedb_libconfig_sub_pre; @@ -2052,6 +2194,8 @@ struct { struct HPMHookPoint *HP_clif_stylist_send_rodexitem_post; struct HPMHookPoint *HP_clif_pReqStyleChange_pre; struct HPMHookPoint *HP_clif_pReqStyleChange_post; + struct HPMHookPoint *HP_clif_pReqStyleChange2_pre; + struct HPMHookPoint *HP_clif_pReqStyleChange2_post; struct HPMHookPoint *HP_clif_cz_req_style_change_sub_pre; struct HPMHookPoint *HP_clif_cz_req_style_change_sub_post; struct HPMHookPoint *HP_clif_style_change_response_pre; @@ -2060,6 +2204,10 @@ struct { struct HPMHookPoint *HP_clif_pPetEvolution_post; struct HPMHookPoint *HP_clif_petEvolutionResult_pre; struct HPMHookPoint *HP_clif_petEvolutionResult_post; + struct HPMHookPoint *HP_clif_party_dead_notification_pre; + struct HPMHookPoint *HP_clif_party_dead_notification_post; + struct HPMHookPoint *HP_clif_pMemorialDungeonCommand_pre; + struct HPMHookPoint *HP_clif_pMemorialDungeonCommand_post; struct HPMHookPoint *HP_cmdline_init_pre; struct HPMHookPoint *HP_cmdline_init_post; struct HPMHookPoint *HP_cmdline_final_pre; @@ -2554,6 +2702,8 @@ struct { struct HPMHookPoint *HP_instance_valid_post; struct HPMHookPoint *HP_instance_destroy_timer_pre; struct HPMHookPoint *HP_instance_destroy_timer_post; + struct HPMHookPoint *HP_instance_force_destroy_pre; + struct HPMHookPoint *HP_instance_force_destroy_post; struct HPMHookPoint *HP_intif_parse_pre; struct HPMHookPoint *HP_intif_parse_post; struct HPMHookPoint *HP_intif_create_pet_pre; @@ -2710,6 +2860,10 @@ struct { struct HPMHookPoint *HP_intif_request_accinfo_post; struct HPMHookPoint *HP_intif_CheckForCharServer_pre; struct HPMHookPoint *HP_intif_CheckForCharServer_post; + struct HPMHookPoint *HP_intif_achievements_request_pre; + struct HPMHookPoint *HP_intif_achievements_request_post; + struct HPMHookPoint *HP_intif_achievements_save_pre; + struct HPMHookPoint *HP_intif_achievements_save_post; struct HPMHookPoint *HP_intif_pWisMessage_pre; struct HPMHookPoint *HP_intif_pWisMessage_post; struct HPMHookPoint *HP_intif_pWisEnd_pre; @@ -2848,6 +3002,8 @@ struct { struct HPMHookPoint *HP_intif_pRodexCheckName_post; struct HPMHookPoint *HP_intif_pRecvClanMemberAction_pre; struct HPMHookPoint *HP_intif_pRecvClanMemberAction_post; + struct HPMHookPoint *HP_intif_pAchievementsLoad_pre; + struct HPMHookPoint *HP_intif_pAchievementsLoad_post; struct HPMHookPoint *HP_ircbot_init_pre; struct HPMHookPoint *HP_ircbot_init_post; struct HPMHookPoint *HP_ircbot_final_pre; @@ -3222,6 +3378,8 @@ struct { struct HPMHookPoint *HP_map_zone_change_post; struct HPMHookPoint *HP_map_zone_change2_pre; struct HPMHookPoint *HP_map_zone_change2_post; + struct HPMHookPoint *HP_map_zone_reload_pre; + struct HPMHookPoint *HP_map_zone_reload_post; struct HPMHookPoint *HP_map_getcell_pre; struct HPMHookPoint *HP_map_getcell_post; struct HPMHookPoint *HP_map_setgatcell_pre; @@ -4682,6 +4840,8 @@ struct { struct HPMHookPoint *HP_pc_check_basicskill_post; struct HPMHookPoint *HP_pc_isDeathPenaltyJob_pre; 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_libpcre_compile_pre; struct HPMHookPoint *HP_libpcre_compile_post; struct HPMHookPoint *HP_libpcre_study_pre; @@ -5000,6 +5160,8 @@ struct { struct HPMHookPoint *HP_script_config_read_post; struct HPMHookPoint *HP_script_add_str_pre; struct HPMHookPoint *HP_script_add_str_post; + struct HPMHookPoint *HP_script_add_variable_pre; + struct HPMHookPoint *HP_script_add_variable_post; struct HPMHookPoint *HP_script_get_str_pre; struct HPMHookPoint *HP_script_get_str_post; struct HPMHookPoint *HP_script_search_str_pre; @@ -6453,6 +6615,110 @@ struct { int HP_HCache_check_post; int HP_HCache_open_pre; int HP_HCache_open_post; + int HP_achievement_init_pre; + int HP_achievement_init_post; + int HP_achievement_final_pre; + int HP_achievement_final_post; + int HP_achievement_db_finalize_pre; + int HP_achievement_db_finalize_post; + int HP_achievement_readdb_pre; + int HP_achievement_readdb_post; + int HP_achievement_readdb_objectives_sub_pre; + int HP_achievement_readdb_objectives_sub_post; + int HP_achievement_readdb_objectives_pre; + int HP_achievement_readdb_objectives_post; + int HP_achievement_readdb_validate_criteria_mobid_pre; + int HP_achievement_readdb_validate_criteria_mobid_post; + int HP_achievement_readdb_validate_criteria_jobid_pre; + int HP_achievement_readdb_validate_criteria_jobid_post; + int HP_achievement_readdb_validate_criteria_itemid_pre; + int HP_achievement_readdb_validate_criteria_itemid_post; + int HP_achievement_readdb_validate_criteria_statustype_pre; + int HP_achievement_readdb_validate_criteria_statustype_post; + int HP_achievement_readdb_validate_criteria_itemtype_pre; + int HP_achievement_readdb_validate_criteria_itemtype_post; + int HP_achievement_readdb_validate_criteria_weaponlv_pre; + int HP_achievement_readdb_validate_criteria_weaponlv_post; + int HP_achievement_readdb_validate_criteria_achievement_pre; + int HP_achievement_readdb_validate_criteria_achievement_post; + int HP_achievement_readdb_rewards_pre; + int HP_achievement_readdb_rewards_post; + int HP_achievement_readdb_validate_reward_items_pre; + int HP_achievement_readdb_validate_reward_items_post; + int HP_achievement_readdb_validate_reward_item_sub_pre; + int HP_achievement_readdb_validate_reward_item_sub_post; + int HP_achievement_readdb_validate_reward_bonus_pre; + int HP_achievement_readdb_validate_reward_bonus_post; + int HP_achievement_readdb_validate_reward_titleid_pre; + int HP_achievement_readdb_validate_reward_titleid_post; + int HP_achievement_readdb_additional_fields_pre; + int HP_achievement_readdb_additional_fields_post; + int HP_achievement_readdb_ranks_pre; + int HP_achievement_readdb_ranks_post; + int HP_achievement_get_pre; + int HP_achievement_get_post; + int HP_achievement_ensure_pre; + int HP_achievement_ensure_post; + int HP_achievement_calculate_totals_pre; + int HP_achievement_calculate_totals_post; + int HP_achievement_check_complete_pre; + int HP_achievement_check_complete_post; + int HP_achievement_progress_add_pre; + int HP_achievement_progress_add_post; + int HP_achievement_progress_set_pre; + int HP_achievement_progress_set_post; + int HP_achievement_check_criteria_pre; + int HP_achievement_check_criteria_post; + int HP_achievement_validate_pre; + int HP_achievement_validate_post; + int HP_achievement_validate_type_pre; + int HP_achievement_validate_type_post; + int HP_achievement_validate_mob_kill_pre; + int HP_achievement_validate_mob_kill_post; + int HP_achievement_validate_mob_damage_pre; + int HP_achievement_validate_mob_damage_post; + int HP_achievement_validate_pc_kill_pre; + int HP_achievement_validate_pc_kill_post; + int HP_achievement_validate_pc_damage_pre; + int HP_achievement_validate_pc_damage_post; + int HP_achievement_validate_jobchange_pre; + int HP_achievement_validate_jobchange_post; + int HP_achievement_validate_stats_pre; + int HP_achievement_validate_stats_post; + int HP_achievement_validate_chatroom_create_pre; + int HP_achievement_validate_chatroom_create_post; + int HP_achievement_validate_chatroom_members_pre; + int HP_achievement_validate_chatroom_members_post; + int HP_achievement_validate_friend_add_pre; + int HP_achievement_validate_friend_add_post; + int HP_achievement_validate_party_create_pre; + int HP_achievement_validate_party_create_post; + int HP_achievement_validate_marry_pre; + int HP_achievement_validate_marry_post; + int HP_achievement_validate_adopt_pre; + int HP_achievement_validate_adopt_post; + int HP_achievement_validate_zeny_pre; + int HP_achievement_validate_zeny_post; + int HP_achievement_validate_refine_pre; + int HP_achievement_validate_refine_post; + int HP_achievement_validate_item_get_pre; + int HP_achievement_validate_item_get_post; + int HP_achievement_validate_item_sell_pre; + int HP_achievement_validate_item_sell_post; + int HP_achievement_validate_achieve_pre; + int HP_achievement_validate_achieve_post; + int HP_achievement_validate_taming_pre; + int HP_achievement_validate_taming_post; + int HP_achievement_validate_achievement_rank_pre; + int HP_achievement_validate_achievement_rank_post; + int HP_achievement_type_requires_criteria_pre; + int HP_achievement_type_requires_criteria_post; + int HP_achievement_init_titles_pre; + int HP_achievement_init_titles_post; + int HP_achievement_check_title_pre; + int HP_achievement_check_title_post; + int HP_achievement_get_rewards_pre; + int HP_achievement_get_rewards_post; int HP_atcommand_init_pre; int HP_atcommand_init_post; int HP_atcommand_final_pre; @@ -7025,6 +7291,8 @@ struct { int HP_clif_delitem_post; int HP_clif_takeitem_pre; int HP_clif_takeitem_post; + int HP_clif_item_movefailed_pre; + int HP_clif_item_movefailed_post; int HP_clif_item_equip_pre; int HP_clif_item_equip_post; int HP_clif_item_normal_pre; @@ -7227,12 +7495,18 @@ struct { int HP_clif_status_change_post; int HP_clif_insert_card_pre; int HP_clif_insert_card_post; - int HP_clif_inventorylist_pre; - int HP_clif_inventorylist_post; - int HP_clif_equiplist_pre; - int HP_clif_equiplist_post; - int HP_clif_cartlist_pre; - int HP_clif_cartlist_post; + int HP_clif_inventoryList_pre; + int HP_clif_inventoryList_post; + int HP_clif_inventoryItems_pre; + int HP_clif_inventoryItems_post; + int HP_clif_equipList_pre; + int HP_clif_equipList_post; + int HP_clif_equipItems_pre; + int HP_clif_equipItems_post; + int HP_clif_cartList_pre; + int HP_clif_cartList_post; + int HP_clif_cartItems_pre; + int HP_clif_cartItems_post; int HP_clif_favorite_item_pre; int HP_clif_favorite_item_post; int HP_clif_clearcart_pre; @@ -7475,6 +7749,8 @@ struct { int HP_clif_msgtable_skill_post; int HP_clif_msgtable_str_pre; int HP_clif_msgtable_str_post; + int HP_clif_msgtable_str_color_pre; + int HP_clif_msgtable_str_color_post; int HP_clif_msgtable_color_pre; int HP_clif_msgtable_color_post; int HP_clif_message_pre; @@ -7525,8 +7801,16 @@ struct { int HP_clif_openvendingAck_post; int HP_clif_vendingreport_pre; int HP_clif_vendingreport_post; - int HP_clif_storagelist_pre; - int HP_clif_storagelist_post; + int HP_clif_storageList_pre; + int HP_clif_storageList_post; + int HP_clif_guildStorageList_pre; + int HP_clif_guildStorageList_post; + int HP_clif_storageItems_pre; + int HP_clif_storageItems_post; + int HP_clif_inventoryStart_pre; + int HP_clif_inventoryStart_post; + int HP_clif_inventoryEnd_pre; + int HP_clif_inventoryEnd_post; int HP_clif_updatestorageamount_pre; int HP_clif_updatestorageamount_post; int HP_clif_storageitemadded_pre; @@ -7637,6 +7921,10 @@ struct { int HP_clif_guild_positioninfolist_post; int HP_clif_guild_expulsionlist_pre; int HP_clif_guild_expulsionlist_post; + int HP_clif_guild_set_position_pre; + int HP_clif_guild_set_position_post; + int HP_clif_guild_position_selected_pre; + int HP_clif_guild_position_selected_post; int HP_clif_validate_emblem_pre; int HP_clif_validate_emblem_post; int HP_clif_bg_hp_pre; @@ -7899,6 +8187,18 @@ struct { int HP_clif_navigate_to_post; int HP_clif_bl_type_pre; int HP_clif_bl_type_post; + int HP_clif_achievement_send_list_pre; + int HP_clif_achievement_send_list_post; + int HP_clif_achievement_send_update_pre; + int HP_clif_achievement_send_update_post; + int HP_clif_pAchievementGetReward_pre; + int HP_clif_pAchievementGetReward_post; + int HP_clif_achievement_reward_ack_pre; + int HP_clif_achievement_reward_ack_post; + int HP_clif_change_title_ack_pre; + int HP_clif_change_title_ack_post; + int HP_clif_pChangeTitle_pre; + int HP_clif_pChangeTitle_post; int HP_clif_pWantToConnection_pre; int HP_clif_pWantToConnection_post; int HP_clif_pLoadEndAck_pre; @@ -8439,6 +8739,10 @@ struct { int HP_clif_hat_effect_post; int HP_clif_hat_effect_single_pre; int HP_clif_hat_effect_single_post; + int HP_clif_overweight_percent_pre; + int HP_clif_overweight_percent_post; + int HP_clif_pChangeDress_pre; + int HP_clif_pChangeDress_post; int HP_clif_pAttendanceDB_pre; int HP_clif_pAttendanceDB_post; int HP_clif_attendancedb_libconfig_sub_pre; @@ -8473,6 +8777,8 @@ struct { int HP_clif_stylist_send_rodexitem_post; int HP_clif_pReqStyleChange_pre; int HP_clif_pReqStyleChange_post; + int HP_clif_pReqStyleChange2_pre; + int HP_clif_pReqStyleChange2_post; int HP_clif_cz_req_style_change_sub_pre; int HP_clif_cz_req_style_change_sub_post; int HP_clif_style_change_response_pre; @@ -8481,6 +8787,10 @@ struct { int HP_clif_pPetEvolution_post; int HP_clif_petEvolutionResult_pre; int HP_clif_petEvolutionResult_post; + int HP_clif_party_dead_notification_pre; + int HP_clif_party_dead_notification_post; + int HP_clif_pMemorialDungeonCommand_pre; + int HP_clif_pMemorialDungeonCommand_post; int HP_cmdline_init_pre; int HP_cmdline_init_post; int HP_cmdline_final_pre; @@ -8975,6 +9285,8 @@ struct { int HP_instance_valid_post; int HP_instance_destroy_timer_pre; int HP_instance_destroy_timer_post; + int HP_instance_force_destroy_pre; + int HP_instance_force_destroy_post; int HP_intif_parse_pre; int HP_intif_parse_post; int HP_intif_create_pet_pre; @@ -9131,6 +9443,10 @@ struct { int HP_intif_request_accinfo_post; int HP_intif_CheckForCharServer_pre; int HP_intif_CheckForCharServer_post; + int HP_intif_achievements_request_pre; + int HP_intif_achievements_request_post; + int HP_intif_achievements_save_pre; + int HP_intif_achievements_save_post; int HP_intif_pWisMessage_pre; int HP_intif_pWisMessage_post; int HP_intif_pWisEnd_pre; @@ -9269,6 +9585,8 @@ struct { int HP_intif_pRodexCheckName_post; int HP_intif_pRecvClanMemberAction_pre; int HP_intif_pRecvClanMemberAction_post; + int HP_intif_pAchievementsLoad_pre; + int HP_intif_pAchievementsLoad_post; int HP_ircbot_init_pre; int HP_ircbot_init_post; int HP_ircbot_final_pre; @@ -9643,6 +9961,8 @@ struct { int HP_map_zone_change_post; int HP_map_zone_change2_pre; int HP_map_zone_change2_post; + int HP_map_zone_reload_pre; + int HP_map_zone_reload_post; int HP_map_getcell_pre; int HP_map_getcell_post; int HP_map_setgatcell_pre; @@ -11103,6 +11423,8 @@ struct { int HP_pc_check_basicskill_post; int HP_pc_isDeathPenaltyJob_pre; int HP_pc_isDeathPenaltyJob_post; + int HP_pc_has_second_costume_pre; + int HP_pc_has_second_costume_post; int HP_libpcre_compile_pre; int HP_libpcre_compile_post; int HP_libpcre_study_pre; @@ -11421,6 +11743,8 @@ struct { int HP_script_config_read_post; int HP_script_add_str_pre; int HP_script_add_str_post; + int HP_script_add_variable_pre; + int HP_script_add_variable_post; int HP_script_get_str_pre; int HP_script_get_str_post; int HP_script_search_str_pre; @@ -12869,6 +13193,7 @@ struct { struct { struct HCache_interface HCache; + struct achievement_interface achievement; struct atcommand_interface atcommand; struct battle_interface battle; struct battleground_interface bg; diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc index 53a8f55a0..2f3f1840f 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc @@ -30,6 +30,59 @@ struct HookingPointData HookingPoints[] = { { HP_POP(HCache->init, HP_HCache_init) }, { HP_POP(HCache->check, HP_HCache_check) }, { HP_POP(HCache->open, HP_HCache_open) }, +/* achievement_interface */ + { HP_POP(achievement->init, HP_achievement_init) }, + { HP_POP(achievement->final, HP_achievement_final) }, + { HP_POP(achievement->db_finalize, HP_achievement_db_finalize) }, + { HP_POP(achievement->readdb, HP_achievement_readdb) }, + { HP_POP(achievement->readdb_objectives_sub, HP_achievement_readdb_objectives_sub) }, + { HP_POP(achievement->readdb_objectives, HP_achievement_readdb_objectives) }, + { HP_POP(achievement->readdb_validate_criteria_mobid, HP_achievement_readdb_validate_criteria_mobid) }, + { HP_POP(achievement->readdb_validate_criteria_jobid, HP_achievement_readdb_validate_criteria_jobid) }, + { HP_POP(achievement->readdb_validate_criteria_itemid, HP_achievement_readdb_validate_criteria_itemid) }, + { HP_POP(achievement->readdb_validate_criteria_statustype, HP_achievement_readdb_validate_criteria_statustype) }, + { HP_POP(achievement->readdb_validate_criteria_itemtype, HP_achievement_readdb_validate_criteria_itemtype) }, + { HP_POP(achievement->readdb_validate_criteria_weaponlv, HP_achievement_readdb_validate_criteria_weaponlv) }, + { HP_POP(achievement->readdb_validate_criteria_achievement, HP_achievement_readdb_validate_criteria_achievement) }, + { HP_POP(achievement->readdb_rewards, HP_achievement_readdb_rewards) }, + { HP_POP(achievement->readdb_validate_reward_items, HP_achievement_readdb_validate_reward_items) }, + { HP_POP(achievement->readdb_validate_reward_item_sub, HP_achievement_readdb_validate_reward_item_sub) }, + { HP_POP(achievement->readdb_validate_reward_bonus, HP_achievement_readdb_validate_reward_bonus) }, + { HP_POP(achievement->readdb_validate_reward_titleid, HP_achievement_readdb_validate_reward_titleid) }, + { HP_POP(achievement->readdb_additional_fields, HP_achievement_readdb_additional_fields) }, + { HP_POP(achievement->readdb_ranks, HP_achievement_readdb_ranks) }, + { HP_POP(achievement->get, HP_achievement_get) }, + { HP_POP(achievement->ensure, HP_achievement_ensure) }, + { HP_POP(achievement->calculate_totals, HP_achievement_calculate_totals) }, + { HP_POP(achievement->check_complete, HP_achievement_check_complete) }, + { HP_POP(achievement->progress_add, HP_achievement_progress_add) }, + { HP_POP(achievement->progress_set, HP_achievement_progress_set) }, + { HP_POP(achievement->check_criteria, HP_achievement_check_criteria) }, + { HP_POP(achievement->validate, HP_achievement_validate) }, + { HP_POP(achievement->validate_type, HP_achievement_validate_type) }, + { HP_POP(achievement->validate_mob_kill, HP_achievement_validate_mob_kill) }, + { HP_POP(achievement->validate_mob_damage, HP_achievement_validate_mob_damage) }, + { HP_POP(achievement->validate_pc_kill, HP_achievement_validate_pc_kill) }, + { HP_POP(achievement->validate_pc_damage, HP_achievement_validate_pc_damage) }, + { HP_POP(achievement->validate_jobchange, HP_achievement_validate_jobchange) }, + { HP_POP(achievement->validate_stats, HP_achievement_validate_stats) }, + { HP_POP(achievement->validate_chatroom_create, HP_achievement_validate_chatroom_create) }, + { HP_POP(achievement->validate_chatroom_members, HP_achievement_validate_chatroom_members) }, + { HP_POP(achievement->validate_friend_add, HP_achievement_validate_friend_add) }, + { HP_POP(achievement->validate_party_create, HP_achievement_validate_party_create) }, + { HP_POP(achievement->validate_marry, HP_achievement_validate_marry) }, + { HP_POP(achievement->validate_adopt, HP_achievement_validate_adopt) }, + { HP_POP(achievement->validate_zeny, HP_achievement_validate_zeny) }, + { HP_POP(achievement->validate_refine, HP_achievement_validate_refine) }, + { HP_POP(achievement->validate_item_get, HP_achievement_validate_item_get) }, + { HP_POP(achievement->validate_item_sell, HP_achievement_validate_item_sell) }, + { HP_POP(achievement->validate_achieve, HP_achievement_validate_achieve) }, + { HP_POP(achievement->validate_taming, HP_achievement_validate_taming) }, + { HP_POP(achievement->validate_achievement_rank, HP_achievement_validate_achievement_rank) }, + { HP_POP(achievement->type_requires_criteria, HP_achievement_type_requires_criteria) }, + { 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) }, /* atcommand_interface */ { HP_POP(atcommand->init, HP_atcommand_init) }, { HP_POP(atcommand->final, HP_atcommand_final) }, @@ -325,6 +378,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->dropitem, HP_clif_dropitem) }, { HP_POP(clif->delitem, HP_clif_delitem) }, { HP_POP(clif->takeitem, HP_clif_takeitem) }, + { HP_POP(clif->item_movefailed, HP_clif_item_movefailed) }, { HP_POP(clif->item_equip, HP_clif_item_equip) }, { HP_POP(clif->item_normal, HP_clif_item_normal) }, { HP_POP(clif->arrowequip, HP_clif_arrowequip) }, @@ -426,9 +480,12 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->combo_delay, HP_clif_combo_delay) }, { HP_POP(clif->status_change, HP_clif_status_change) }, { HP_POP(clif->insert_card, HP_clif_insert_card) }, - { HP_POP(clif->inventorylist, HP_clif_inventorylist) }, - { HP_POP(clif->equiplist, HP_clif_equiplist) }, - { HP_POP(clif->cartlist, HP_clif_cartlist) }, + { HP_POP(clif->inventoryList, HP_clif_inventoryList) }, + { HP_POP(clif->inventoryItems, HP_clif_inventoryItems) }, + { HP_POP(clif->equipList, HP_clif_equipList) }, + { HP_POP(clif->equipItems, HP_clif_equipItems) }, + { HP_POP(clif->cartList, HP_clif_cartList) }, + { HP_POP(clif->cartItems, HP_clif_cartItems) }, { 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) }, @@ -550,6 +607,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->msgtable_num, HP_clif_msgtable_num) }, { HP_POP(clif->msgtable_skill, HP_clif_msgtable_skill) }, { HP_POP(clif->msgtable_str, HP_clif_msgtable_str) }, + { HP_POP(clif->msgtable_str_color, HP_clif_msgtable_str_color) }, { HP_POP(clif->msgtable_color, HP_clif_msgtable_color) }, { HP_POP(clif->message, HP_clif_message) }, { HP_POP(clif->messageln, HP_clif_messageln) }, @@ -575,7 +633,11 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->openvending, HP_clif_openvending) }, { HP_POP(clif->openvendingAck, HP_clif_openvendingAck) }, { HP_POP(clif->vendingreport, HP_clif_vendingreport) }, - { HP_POP(clif->storagelist, HP_clif_storagelist) }, + { HP_POP(clif->storageList, HP_clif_storageList) }, + { HP_POP(clif->guildStorageList, HP_clif_guildStorageList) }, + { HP_POP(clif->storageItems, HP_clif_storageItems) }, + { HP_POP(clif->inventoryStart, HP_clif_inventoryStart) }, + { HP_POP(clif->inventoryEnd, HP_clif_inventoryEnd) }, { HP_POP(clif->updatestorageamount, HP_clif_updatestorageamount) }, { HP_POP(clif->storageitemadded, HP_clif_storageitemadded) }, { HP_POP(clif->storageitemremoved, HP_clif_storageitemremoved) }, @@ -631,6 +693,8 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->guild_positionnamelist, HP_clif_guild_positionnamelist) }, { HP_POP(clif->guild_positioninfolist, HP_clif_guild_positioninfolist) }, { HP_POP(clif->guild_expulsionlist, HP_clif_guild_expulsionlist) }, + { HP_POP(clif->guild_set_position, HP_clif_guild_set_position) }, + { HP_POP(clif->guild_position_selected, HP_clif_guild_position_selected) }, { HP_POP(clif->validate_emblem, HP_clif_validate_emblem) }, { HP_POP(clif->bg_hp, HP_clif_bg_hp) }, { HP_POP(clif->bg_xy, HP_clif_bg_xy) }, @@ -762,6 +826,12 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->isdisguised, HP_clif_isdisguised) }, { HP_POP(clif->navigate_to, HP_clif_navigate_to) }, { HP_POP(clif->bl_type, HP_clif_bl_type) }, + { HP_POP(clif->achievement_send_list, HP_clif_achievement_send_list) }, + { HP_POP(clif->achievement_send_update, HP_clif_achievement_send_update) }, + { HP_POP(clif->pAchievementGetReward, HP_clif_pAchievementGetReward) }, + { HP_POP(clif->achievement_reward_ack, HP_clif_achievement_reward_ack) }, + { HP_POP(clif->change_title_ack, HP_clif_change_title_ack) }, + { HP_POP(clif->pChangeTitle, HP_clif_pChangeTitle) }, { HP_POP(clif->pWantToConnection, HP_clif_pWantToConnection) }, { HP_POP(clif->pLoadEndAck, HP_clif_pLoadEndAck) }, { HP_POP(clif->pTickSend, HP_clif_pTickSend) }, @@ -1032,6 +1102,8 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->pClanMessage, HP_clif_pClanMessage) }, { HP_POP(clif->hat_effect, HP_clif_hat_effect) }, { HP_POP(clif->hat_effect_single, HP_clif_hat_effect_single) }, + { HP_POP(clif->overweight_percent, HP_clif_overweight_percent) }, + { HP_POP(clif->pChangeDress, HP_clif_pChangeDress) }, { HP_POP(clif->pAttendanceDB, HP_clif_pAttendanceDB) }, { HP_POP(clif->attendancedb_libconfig_sub, HP_clif_attendancedb_libconfig_sub) }, { HP_POP(clif->attendance_timediff, HP_clif_attendance_timediff) }, @@ -1049,10 +1121,13 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->style_change_validate_requirements, HP_clif_style_change_validate_requirements) }, { HP_POP(clif->stylist_send_rodexitem, HP_clif_stylist_send_rodexitem) }, { HP_POP(clif->pReqStyleChange, HP_clif_pReqStyleChange) }, + { HP_POP(clif->pReqStyleChange2, HP_clif_pReqStyleChange2) }, { HP_POP(clif->cz_req_style_change_sub, HP_clif_cz_req_style_change_sub) }, { HP_POP(clif->style_change_response, HP_clif_style_change_response) }, { HP_POP(clif->pPetEvolution, HP_clif_pPetEvolution) }, { 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) }, /* cmdline_interface */ { HP_POP(cmdline->init, HP_cmdline_init) }, { HP_POP(cmdline->final, HP_cmdline_final) }, @@ -1312,6 +1387,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(instance->set_timeout, HP_instance_set_timeout) }, { HP_POP(instance->valid, HP_instance_valid) }, { HP_POP(instance->destroy_timer, HP_instance_destroy_timer) }, + { HP_POP(instance->force_destroy, HP_instance_force_destroy) }, /* intif_interface */ { HP_POP(intif->parse, HP_intif_parse) }, { HP_POP(intif->create_pet, HP_intif_create_pet) }, @@ -1391,6 +1467,8 @@ struct HookingPointData HookingPoints[] = { { HP_POP(intif->clan_membercount, HP_intif_clan_membercount) }, { HP_POP(intif->request_accinfo, HP_intif_request_accinfo) }, { HP_POP(intif->CheckForCharServer, HP_intif_CheckForCharServer) }, + { HP_POP(intif->achievements_request, HP_intif_achievements_request) }, + { HP_POP(intif->achievements_save, HP_intif_achievements_save) }, { HP_POP(intif->pWisMessage, HP_intif_pWisMessage) }, { HP_POP(intif->pWisEnd, HP_intif_pWisEnd) }, { HP_POP(intif->pWisToGM_sub, HP_intif_pWisToGM_sub) }, @@ -1460,6 +1538,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(intif->pRodexSendMail, HP_intif_pRodexSendMail) }, { HP_POP(intif->pRodexCheckName, HP_intif_pRodexCheckName) }, { HP_POP(intif->pRecvClanMemberAction, HP_intif_pRecvClanMemberAction) }, + { HP_POP(intif->pAchievementsLoad, HP_intif_pAchievementsLoad) }, /* irc_bot_interface */ { HP_POP(ircbot->init, HP_ircbot_init) }, { HP_POP(ircbot->final, HP_ircbot_final) }, @@ -1653,6 +1732,7 @@ struct HookingPointData HookingPoints[] = { { 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) }, + { HP_POP(map->zone_reload, HP_map_zone_reload) }, { HP_POP(map->getcell, HP_map_getcell) }, { HP_POP(map->setgatcell, HP_map_setgatcell) }, { HP_POP(map->cellfromcache, HP_map_cellfromcache) }, @@ -2397,6 +2477,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(pc->check_supernovice_call, HP_pc_check_supernovice_call) }, { 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) }, /* pcre_interface */ { HP_POP(libpcre->compile, HP_libpcre_compile) }, { HP_POP(libpcre->study, HP_libpcre_study) }, @@ -2562,6 +2643,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(script->setarray_pc, HP_script_setarray_pc) }, { HP_POP(script->config_read, HP_script_config_read) }, { HP_POP(script->add_str, HP_script_add_str) }, + { HP_POP(script->add_variable, HP_script_add_variable) }, { HP_POP(script->get_str, HP_script_get_str) }, { HP_POP(script->search_str, HP_script_search_str) }, { HP_POP(script->setd_sub, HP_script_setd_sub) }, diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc index ab60f701c..860e47f1b 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc @@ -106,6 +106,1385 @@ FILE* HP_HCache_open(const char *file, const char *opt) { } return retVal___; } +/* achievement_interface */ +void HP_achievement_init(bool minimal) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_init_pre > 0) { + void (*preHookFunc) (bool *minimal); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_init_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_init_pre[hIndex].func; + preHookFunc(&minimal); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.init(minimal); + } + if (HPMHooks.count.HP_achievement_init_post > 0) { + void (*postHookFunc) (bool minimal); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_init_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_init_post[hIndex].func; + postHookFunc(minimal); + } + } + return; +} +void HP_achievement_final(void) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_final_pre > 0) { + void (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_final_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_final_pre[hIndex].func; + preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.final(); + } + if (HPMHooks.count.HP_achievement_final_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_final_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_achievement_db_finalize(union DBKey key, struct DBData *data, va_list args) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_achievement_db_finalize_pre > 0) { + int (*preHookFunc) (union DBKey *key, struct DBData **data, va_list args); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_db_finalize_pre; hIndex++) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_achievement_db_finalize_pre[hIndex].func; + retVal___ = preHookFunc(&key, &data, args___copy); + va_end(args___copy); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list args___copy; va_copy(args___copy, args); + retVal___ = HPMHooks.source.achievement.db_finalize(key, data, args___copy); + va_end(args___copy); + } + if (HPMHooks.count.HP_achievement_db_finalize_post > 0) { + int (*postHookFunc) (int retVal___, union DBKey key, struct DBData *data, va_list args); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_db_finalize_post; hIndex++) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_achievement_db_finalize_post[hIndex].func; + retVal___ = postHookFunc(retVal___, key, data, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +void HP_achievement_readdb(void) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_readdb_pre > 0) { + void (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_pre[hIndex].func; + preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.readdb(); + } + if (HPMHooks.count.HP_achievement_readdb_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_post[hIndex].func; + postHookFunc(); + } + } + return; +} +bool HP_achievement_readdb_objectives_sub(const struct config_setting_t *conf, int index, struct achievement_data *entry) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_readdb_objectives_sub_pre > 0) { + bool (*preHookFunc) (const struct config_setting_t **conf, int *index, struct achievement_data **entry); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_objectives_sub_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_objectives_sub_pre[hIndex].func; + retVal___ = preHookFunc(&conf, &index, &entry); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.readdb_objectives_sub(conf, index, entry); + } + if (HPMHooks.count.HP_achievement_readdb_objectives_sub_post > 0) { + bool (*postHookFunc) (bool retVal___, const struct config_setting_t *conf, int index, struct achievement_data *entry); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_objectives_sub_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_objectives_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, conf, index, entry); + } + } + return retVal___; +} +bool HP_achievement_readdb_objectives(const struct config_setting_t *conf, struct achievement_data *entry) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_readdb_objectives_pre > 0) { + bool (*preHookFunc) (const struct config_setting_t **conf, struct achievement_data **entry); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_objectives_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_objectives_pre[hIndex].func; + retVal___ = preHookFunc(&conf, &entry); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.readdb_objectives(conf, entry); + } + if (HPMHooks.count.HP_achievement_readdb_objectives_post > 0) { + bool (*postHookFunc) (bool retVal___, const struct config_setting_t *conf, struct achievement_data *entry); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_objectives_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_objectives_post[hIndex].func; + retVal___ = postHookFunc(retVal___, conf, entry); + } + } + return retVal___; +} +bool HP_achievement_readdb_validate_criteria_mobid(const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_readdb_validate_criteria_mobid_pre > 0) { + bool (*preHookFunc) (const struct config_setting_t **t, struct achievement_objective **obj, enum achievement_types *type, int *entry_id, int *obj_idx); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_criteria_mobid_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_validate_criteria_mobid_pre[hIndex].func; + retVal___ = preHookFunc(&t, &obj, &type, &entry_id, &obj_idx); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.readdb_validate_criteria_mobid(t, obj, type, entry_id, obj_idx); + } + if (HPMHooks.count.HP_achievement_readdb_validate_criteria_mobid_post > 0) { + bool (*postHookFunc) (bool retVal___, const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_criteria_mobid_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_validate_criteria_mobid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, t, obj, type, entry_id, obj_idx); + } + } + return retVal___; +} +bool HP_achievement_readdb_validate_criteria_jobid(const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_readdb_validate_criteria_jobid_pre > 0) { + bool (*preHookFunc) (const struct config_setting_t **t, struct achievement_objective **obj, enum achievement_types *type, int *entry_id, int *obj_idx); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_criteria_jobid_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_validate_criteria_jobid_pre[hIndex].func; + retVal___ = preHookFunc(&t, &obj, &type, &entry_id, &obj_idx); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.readdb_validate_criteria_jobid(t, obj, type, entry_id, obj_idx); + } + if (HPMHooks.count.HP_achievement_readdb_validate_criteria_jobid_post > 0) { + bool (*postHookFunc) (bool retVal___, const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_criteria_jobid_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_validate_criteria_jobid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, t, obj, type, entry_id, obj_idx); + } + } + return retVal___; +} +bool HP_achievement_readdb_validate_criteria_itemid(const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_readdb_validate_criteria_itemid_pre > 0) { + bool (*preHookFunc) (const struct config_setting_t **t, struct achievement_objective **obj, enum achievement_types *type, int *entry_id, int *obj_idx); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_criteria_itemid_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_validate_criteria_itemid_pre[hIndex].func; + retVal___ = preHookFunc(&t, &obj, &type, &entry_id, &obj_idx); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.readdb_validate_criteria_itemid(t, obj, type, entry_id, obj_idx); + } + if (HPMHooks.count.HP_achievement_readdb_validate_criteria_itemid_post > 0) { + bool (*postHookFunc) (bool retVal___, const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_criteria_itemid_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_validate_criteria_itemid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, t, obj, type, entry_id, obj_idx); + } + } + return retVal___; +} +bool HP_achievement_readdb_validate_criteria_statustype(const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_readdb_validate_criteria_statustype_pre > 0) { + bool (*preHookFunc) (const struct config_setting_t **t, struct achievement_objective **obj, enum achievement_types *type, int *entry_id, int *obj_idx); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_criteria_statustype_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_validate_criteria_statustype_pre[hIndex].func; + retVal___ = preHookFunc(&t, &obj, &type, &entry_id, &obj_idx); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.readdb_validate_criteria_statustype(t, obj, type, entry_id, obj_idx); + } + if (HPMHooks.count.HP_achievement_readdb_validate_criteria_statustype_post > 0) { + bool (*postHookFunc) (bool retVal___, const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_criteria_statustype_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_validate_criteria_statustype_post[hIndex].func; + retVal___ = postHookFunc(retVal___, t, obj, type, entry_id, obj_idx); + } + } + return retVal___; +} +bool HP_achievement_readdb_validate_criteria_itemtype(const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_readdb_validate_criteria_itemtype_pre > 0) { + bool (*preHookFunc) (const struct config_setting_t **t, struct achievement_objective **obj, enum achievement_types *type, int *entry_id, int *obj_idx); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_criteria_itemtype_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_validate_criteria_itemtype_pre[hIndex].func; + retVal___ = preHookFunc(&t, &obj, &type, &entry_id, &obj_idx); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.readdb_validate_criteria_itemtype(t, obj, type, entry_id, obj_idx); + } + if (HPMHooks.count.HP_achievement_readdb_validate_criteria_itemtype_post > 0) { + bool (*postHookFunc) (bool retVal___, const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_criteria_itemtype_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_validate_criteria_itemtype_post[hIndex].func; + retVal___ = postHookFunc(retVal___, t, obj, type, entry_id, obj_idx); + } + } + return retVal___; +} +bool HP_achievement_readdb_validate_criteria_weaponlv(const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_readdb_validate_criteria_weaponlv_pre > 0) { + bool (*preHookFunc) (const struct config_setting_t **t, struct achievement_objective **obj, enum achievement_types *type, int *entry_id, int *obj_idx); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_criteria_weaponlv_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_validate_criteria_weaponlv_pre[hIndex].func; + retVal___ = preHookFunc(&t, &obj, &type, &entry_id, &obj_idx); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.readdb_validate_criteria_weaponlv(t, obj, type, entry_id, obj_idx); + } + if (HPMHooks.count.HP_achievement_readdb_validate_criteria_weaponlv_post > 0) { + bool (*postHookFunc) (bool retVal___, const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_criteria_weaponlv_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_validate_criteria_weaponlv_post[hIndex].func; + retVal___ = postHookFunc(retVal___, t, obj, type, entry_id, obj_idx); + } + } + return retVal___; +} +bool HP_achievement_readdb_validate_criteria_achievement(const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_readdb_validate_criteria_achievement_pre > 0) { + bool (*preHookFunc) (const struct config_setting_t **t, struct achievement_objective **obj, enum achievement_types *type, int *entry_id, int *obj_idx); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_criteria_achievement_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_validate_criteria_achievement_pre[hIndex].func; + retVal___ = preHookFunc(&t, &obj, &type, &entry_id, &obj_idx); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.readdb_validate_criteria_achievement(t, obj, type, entry_id, obj_idx); + } + if (HPMHooks.count.HP_achievement_readdb_validate_criteria_achievement_post > 0) { + bool (*postHookFunc) (bool retVal___, const struct config_setting_t *t, struct achievement_objective *obj, enum achievement_types type, int entry_id, int obj_idx); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_criteria_achievement_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_validate_criteria_achievement_post[hIndex].func; + retVal___ = postHookFunc(retVal___, t, obj, type, entry_id, obj_idx); + } + } + return retVal___; +} +bool HP_achievement_readdb_rewards(const struct config_setting_t *conf, struct achievement_data *entry, const char *source) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_readdb_rewards_pre > 0) { + bool (*preHookFunc) (const struct config_setting_t **conf, struct achievement_data **entry, const char **source); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_rewards_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_rewards_pre[hIndex].func; + retVal___ = preHookFunc(&conf, &entry, &source); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.readdb_rewards(conf, entry, source); + } + if (HPMHooks.count.HP_achievement_readdb_rewards_post > 0) { + bool (*postHookFunc) (bool retVal___, const struct config_setting_t *conf, struct achievement_data *entry, const char *source); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_rewards_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_rewards_post[hIndex].func; + retVal___ = postHookFunc(retVal___, conf, entry, source); + } + } + return retVal___; +} +void HP_achievement_readdb_validate_reward_items(const struct config_setting_t *t, struct achievement_data *entry) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_readdb_validate_reward_items_pre > 0) { + void (*preHookFunc) (const struct config_setting_t **t, struct achievement_data **entry); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_reward_items_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_validate_reward_items_pre[hIndex].func; + preHookFunc(&t, &entry); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.readdb_validate_reward_items(t, entry); + } + if (HPMHooks.count.HP_achievement_readdb_validate_reward_items_post > 0) { + void (*postHookFunc) (const struct config_setting_t *t, struct achievement_data *entry); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_reward_items_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_validate_reward_items_post[hIndex].func; + postHookFunc(t, entry); + } + } + return; +} +bool HP_achievement_readdb_validate_reward_item_sub(const struct config_setting_t *t, int element, struct achievement_data *entry) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_readdb_validate_reward_item_sub_pre > 0) { + bool (*preHookFunc) (const struct config_setting_t **t, int *element, struct achievement_data **entry); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_reward_item_sub_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_validate_reward_item_sub_pre[hIndex].func; + retVal___ = preHookFunc(&t, &element, &entry); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.readdb_validate_reward_item_sub(t, element, entry); + } + if (HPMHooks.count.HP_achievement_readdb_validate_reward_item_sub_post > 0) { + bool (*postHookFunc) (bool retVal___, const struct config_setting_t *t, int element, struct achievement_data *entry); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_reward_item_sub_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_validate_reward_item_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, t, element, entry); + } + } + return retVal___; +} +void HP_achievement_readdb_validate_reward_bonus(const struct config_setting_t *t, struct achievement_data *entry, const char *source) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_readdb_validate_reward_bonus_pre > 0) { + void (*preHookFunc) (const struct config_setting_t **t, struct achievement_data **entry, const char **source); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_reward_bonus_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_validate_reward_bonus_pre[hIndex].func; + preHookFunc(&t, &entry, &source); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.readdb_validate_reward_bonus(t, entry, source); + } + if (HPMHooks.count.HP_achievement_readdb_validate_reward_bonus_post > 0) { + void (*postHookFunc) (const struct config_setting_t *t, struct achievement_data *entry, const char *source); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_reward_bonus_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_validate_reward_bonus_post[hIndex].func; + postHookFunc(t, entry, source); + } + } + return; +} +void HP_achievement_readdb_validate_reward_titleid(const struct config_setting_t *t, struct achievement_data *entry) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_readdb_validate_reward_titleid_pre > 0) { + void (*preHookFunc) (const struct config_setting_t **t, struct achievement_data **entry); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_reward_titleid_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_validate_reward_titleid_pre[hIndex].func; + preHookFunc(&t, &entry); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.readdb_validate_reward_titleid(t, entry); + } + if (HPMHooks.count.HP_achievement_readdb_validate_reward_titleid_post > 0) { + void (*postHookFunc) (const struct config_setting_t *t, struct achievement_data *entry); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_validate_reward_titleid_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_validate_reward_titleid_post[hIndex].func; + postHookFunc(t, entry); + } + } + return; +} +void HP_achievement_readdb_additional_fields(const struct config_setting_t *conf, struct achievement_data *entry, const char *source) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_readdb_additional_fields_pre > 0) { + void (*preHookFunc) (const struct config_setting_t **conf, struct achievement_data **entry, const char **source); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_additional_fields_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_additional_fields_pre[hIndex].func; + preHookFunc(&conf, &entry, &source); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.readdb_additional_fields(conf, entry, source); + } + if (HPMHooks.count.HP_achievement_readdb_additional_fields_post > 0) { + void (*postHookFunc) (const struct config_setting_t *conf, struct achievement_data *entry, const char *source); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_additional_fields_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_additional_fields_post[hIndex].func; + postHookFunc(conf, entry, source); + } + } + return; +} +void HP_achievement_readdb_ranks(void) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_readdb_ranks_pre > 0) { + void (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_ranks_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_readdb_ranks_pre[hIndex].func; + preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.readdb_ranks(); + } + if (HPMHooks.count.HP_achievement_readdb_ranks_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_readdb_ranks_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_readdb_ranks_post[hIndex].func; + postHookFunc(); + } + } + return; +} +const struct achievement_data* HP_achievement_get(int aid) { + int hIndex = 0; + const struct achievement_data* retVal___ = NULL; + if (HPMHooks.count.HP_achievement_get_pre > 0) { + const struct achievement_data* (*preHookFunc) (int *aid); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_get_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_get_pre[hIndex].func; + retVal___ = preHookFunc(&aid); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.get(aid); + } + if (HPMHooks.count.HP_achievement_get_post > 0) { + const struct achievement_data* (*postHookFunc) (const struct achievement_data* retVal___, int aid); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_get_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_get_post[hIndex].func; + retVal___ = postHookFunc(retVal___, aid); + } + } + return retVal___; +} +struct achievement* HP_achievement_ensure(struct map_session_data *sd, const struct achievement_data *ad) { + int hIndex = 0; + struct achievement* retVal___ = NULL; + if (HPMHooks.count.HP_achievement_ensure_pre > 0) { + struct achievement* (*preHookFunc) (struct map_session_data **sd, const struct achievement_data **ad); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_ensure_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_ensure_pre[hIndex].func; + retVal___ = preHookFunc(&sd, &ad); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.ensure(sd, ad); + } + if (HPMHooks.count.HP_achievement_ensure_post > 0) { + struct achievement* (*postHookFunc) (struct achievement* retVal___, struct map_session_data *sd, const struct achievement_data *ad); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_ensure_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_ensure_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, ad); + } + } + return retVal___; +} +void HP_achievement_calculate_totals(const struct map_session_data *sd, int *points, int *completed, int *rank, int *curr_rank_points) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_calculate_totals_pre > 0) { + void (*preHookFunc) (const struct map_session_data **sd, int **points, int **completed, int **rank, int **curr_rank_points); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_calculate_totals_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_calculate_totals_pre[hIndex].func; + preHookFunc(&sd, &points, &completed, &rank, &curr_rank_points); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.calculate_totals(sd, points, completed, rank, curr_rank_points); + } + if (HPMHooks.count.HP_achievement_calculate_totals_post > 0) { + void (*postHookFunc) (const struct map_session_data *sd, int *points, int *completed, int *rank, int *curr_rank_points); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_calculate_totals_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_calculate_totals_post[hIndex].func; + postHookFunc(sd, points, completed, rank, curr_rank_points); + } + } + return; +} +bool HP_achievement_check_complete(struct map_session_data *sd, const struct achievement_data *ad) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_check_complete_pre > 0) { + bool (*preHookFunc) (struct map_session_data **sd, const struct achievement_data **ad); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_check_complete_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_check_complete_pre[hIndex].func; + retVal___ = preHookFunc(&sd, &ad); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.check_complete(sd, ad); + } + if (HPMHooks.count.HP_achievement_check_complete_post > 0) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, const struct achievement_data *ad); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_check_complete_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_check_complete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, ad); + } + } + return retVal___; +} +void HP_achievement_progress_add(struct map_session_data *sd, const struct achievement_data *ad, unsigned int obj_idx, int progress) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_progress_add_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, const struct achievement_data **ad, unsigned int *obj_idx, int *progress); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_progress_add_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_progress_add_pre[hIndex].func; + preHookFunc(&sd, &ad, &obj_idx, &progress); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.progress_add(sd, ad, obj_idx, progress); + } + if (HPMHooks.count.HP_achievement_progress_add_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, const struct achievement_data *ad, unsigned int obj_idx, int progress); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_progress_add_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_progress_add_post[hIndex].func; + postHookFunc(sd, ad, obj_idx, progress); + } + } + return; +} +void HP_achievement_progress_set(struct map_session_data *sd, const struct achievement_data *ad, unsigned int obj_idx, int progress) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_progress_set_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, const struct achievement_data **ad, unsigned int *obj_idx, int *progress); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_progress_set_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_progress_set_pre[hIndex].func; + preHookFunc(&sd, &ad, &obj_idx, &progress); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.progress_set(sd, ad, obj_idx, progress); + } + if (HPMHooks.count.HP_achievement_progress_set_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, const struct achievement_data *ad, unsigned int obj_idx, int progress); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_progress_set_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_progress_set_post[hIndex].func; + postHookFunc(sd, ad, obj_idx, progress); + } + } + return; +} +bool HP_achievement_check_criteria(const struct achievement_objective *objective, const struct achievement_objective *criteria) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_check_criteria_pre > 0) { + bool (*preHookFunc) (const struct achievement_objective **objective, const struct achievement_objective **criteria); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_check_criteria_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_check_criteria_pre[hIndex].func; + retVal___ = preHookFunc(&objective, &criteria); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.check_criteria(objective, criteria); + } + if (HPMHooks.count.HP_achievement_check_criteria_post > 0) { + bool (*postHookFunc) (bool retVal___, const struct achievement_objective *objective, const struct achievement_objective *criteria); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_check_criteria_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_check_criteria_post[hIndex].func; + retVal___ = postHookFunc(retVal___, objective, criteria); + } + } + return retVal___; +} +bool HP_achievement_validate(struct map_session_data *sd, int aid, unsigned int obj_idx, int progress, bool additive) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_validate_pre > 0) { + bool (*preHookFunc) (struct map_session_data **sd, int *aid, unsigned int *obj_idx, int *progress, bool *additive); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_pre[hIndex].func; + retVal___ = preHookFunc(&sd, &aid, &obj_idx, &progress, &additive); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.validate(sd, aid, obj_idx, progress, additive); + } + if (HPMHooks.count.HP_achievement_validate_post > 0) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, int aid, unsigned int obj_idx, int progress, bool additive); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, aid, obj_idx, progress, additive); + } + } + return retVal___; +} +int HP_achievement_validate_type(struct map_session_data *sd, enum achievement_types type, const struct achievement_objective *criteria, bool additive) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_achievement_validate_type_pre > 0) { + int (*preHookFunc) (struct map_session_data **sd, enum achievement_types *type, const struct achievement_objective **criteria, bool *additive); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_type_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_type_pre[hIndex].func; + retVal___ = preHookFunc(&sd, &type, &criteria, &additive); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.validate_type(sd, type, criteria, additive); + } + if (HPMHooks.count.HP_achievement_validate_type_post > 0) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, enum achievement_types type, const struct achievement_objective *criteria, bool additive); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_type_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_type_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, type, criteria, additive); + } + } + return retVal___; +} +void HP_achievement_validate_mob_kill(struct map_session_data *sd, int mob_id) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_mob_kill_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, int *mob_id); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_mob_kill_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_mob_kill_pre[hIndex].func; + preHookFunc(&sd, &mob_id); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_mob_kill(sd, mob_id); + } + if (HPMHooks.count.HP_achievement_validate_mob_kill_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, int mob_id); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_mob_kill_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_mob_kill_post[hIndex].func; + postHookFunc(sd, mob_id); + } + } + return; +} +void HP_achievement_validate_mob_damage(struct map_session_data *sd, unsigned int damage, bool received) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_mob_damage_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, unsigned int *damage, bool *received); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_mob_damage_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_mob_damage_pre[hIndex].func; + preHookFunc(&sd, &damage, &received); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_mob_damage(sd, damage, received); + } + if (HPMHooks.count.HP_achievement_validate_mob_damage_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, unsigned int damage, bool received); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_mob_damage_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_mob_damage_post[hIndex].func; + postHookFunc(sd, damage, received); + } + } + return; +} +void HP_achievement_validate_pc_kill(struct map_session_data *sd, struct map_session_data *dstsd) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_pc_kill_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, struct map_session_data **dstsd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_pc_kill_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_pc_kill_pre[hIndex].func; + preHookFunc(&sd, &dstsd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_pc_kill(sd, dstsd); + } + if (HPMHooks.count.HP_achievement_validate_pc_kill_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, struct map_session_data *dstsd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_pc_kill_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_pc_kill_post[hIndex].func; + postHookFunc(sd, dstsd); + } + } + return; +} +void HP_achievement_validate_pc_damage(struct map_session_data *sd, struct map_session_data *dstsd, unsigned int damage) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_pc_damage_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, struct map_session_data **dstsd, unsigned int *damage); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_pc_damage_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_pc_damage_pre[hIndex].func; + preHookFunc(&sd, &dstsd, &damage); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_pc_damage(sd, dstsd, damage); + } + if (HPMHooks.count.HP_achievement_validate_pc_damage_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, struct map_session_data *dstsd, unsigned int damage); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_pc_damage_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_pc_damage_post[hIndex].func; + postHookFunc(sd, dstsd, damage); + } + } + return; +} +void HP_achievement_validate_jobchange(struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_jobchange_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_jobchange_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_jobchange_pre[hIndex].func; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_jobchange(sd); + } + if (HPMHooks.count.HP_achievement_validate_jobchange_post > 0) { + void (*postHookFunc) (struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_jobchange_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_jobchange_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_achievement_validate_stats(struct map_session_data *sd, enum status_point_types stat_type, int progress) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_stats_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, enum status_point_types *stat_type, int *progress); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_stats_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_stats_pre[hIndex].func; + preHookFunc(&sd, &stat_type, &progress); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_stats(sd, stat_type, progress); + } + if (HPMHooks.count.HP_achievement_validate_stats_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, enum status_point_types stat_type, int progress); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_stats_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_stats_post[hIndex].func; + postHookFunc(sd, stat_type, progress); + } + } + return; +} +void HP_achievement_validate_chatroom_create(struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_chatroom_create_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_chatroom_create_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_chatroom_create_pre[hIndex].func; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_chatroom_create(sd); + } + if (HPMHooks.count.HP_achievement_validate_chatroom_create_post > 0) { + void (*postHookFunc) (struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_chatroom_create_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_chatroom_create_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_achievement_validate_chatroom_members(struct map_session_data *sd, int progress) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_chatroom_members_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, int *progress); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_chatroom_members_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_chatroom_members_pre[hIndex].func; + preHookFunc(&sd, &progress); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_chatroom_members(sd, progress); + } + if (HPMHooks.count.HP_achievement_validate_chatroom_members_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, int progress); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_chatroom_members_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_chatroom_members_post[hIndex].func; + postHookFunc(sd, progress); + } + } + return; +} +void HP_achievement_validate_friend_add(struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_friend_add_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_friend_add_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_friend_add_pre[hIndex].func; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_friend_add(sd); + } + if (HPMHooks.count.HP_achievement_validate_friend_add_post > 0) { + void (*postHookFunc) (struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_friend_add_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_friend_add_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_achievement_validate_party_create(struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_party_create_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_party_create_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_party_create_pre[hIndex].func; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_party_create(sd); + } + if (HPMHooks.count.HP_achievement_validate_party_create_post > 0) { + void (*postHookFunc) (struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_party_create_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_party_create_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_achievement_validate_marry(struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_marry_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_marry_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_marry_pre[hIndex].func; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_marry(sd); + } + if (HPMHooks.count.HP_achievement_validate_marry_post > 0) { + void (*postHookFunc) (struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_marry_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_marry_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_achievement_validate_adopt(struct map_session_data *sd, bool parent) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_adopt_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, bool *parent); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_adopt_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_adopt_pre[hIndex].func; + preHookFunc(&sd, &parent); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_adopt(sd, parent); + } + if (HPMHooks.count.HP_achievement_validate_adopt_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, bool parent); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_adopt_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_adopt_post[hIndex].func; + postHookFunc(sd, parent); + } + } + return; +} +void HP_achievement_validate_zeny(struct map_session_data *sd, int amount) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_zeny_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, int *amount); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_zeny_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_zeny_pre[hIndex].func; + preHookFunc(&sd, &amount); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_zeny(sd, amount); + } + if (HPMHooks.count.HP_achievement_validate_zeny_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, int amount); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_zeny_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_zeny_post[hIndex].func; + postHookFunc(sd, amount); + } + } + return; +} +void HP_achievement_validate_refine(struct map_session_data *sd, unsigned int idx, bool success) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_refine_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, unsigned int *idx, bool *success); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_refine_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_refine_pre[hIndex].func; + preHookFunc(&sd, &idx, &success); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_refine(sd, idx, success); + } + if (HPMHooks.count.HP_achievement_validate_refine_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, unsigned int idx, bool success); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_refine_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_refine_post[hIndex].func; + postHookFunc(sd, idx, success); + } + } + return; +} +void HP_achievement_validate_item_get(struct map_session_data *sd, int nameid, int amount) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_item_get_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, int *nameid, int *amount); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_item_get_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_item_get_pre[hIndex].func; + preHookFunc(&sd, &nameid, &amount); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_item_get(sd, nameid, amount); + } + if (HPMHooks.count.HP_achievement_validate_item_get_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, int nameid, int amount); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_item_get_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_item_get_post[hIndex].func; + postHookFunc(sd, nameid, amount); + } + } + return; +} +void HP_achievement_validate_item_sell(struct map_session_data *sd, int nameid, int amount) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_item_sell_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, int *nameid, int *amount); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_item_sell_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_item_sell_pre[hIndex].func; + preHookFunc(&sd, &nameid, &amount); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_item_sell(sd, nameid, amount); + } + if (HPMHooks.count.HP_achievement_validate_item_sell_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, int nameid, int amount); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_item_sell_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_item_sell_post[hIndex].func; + postHookFunc(sd, nameid, amount); + } + } + return; +} +void HP_achievement_validate_achieve(struct map_session_data *sd, int achid) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_achieve_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, int *achid); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_achieve_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_achieve_pre[hIndex].func; + preHookFunc(&sd, &achid); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_achieve(sd, achid); + } + if (HPMHooks.count.HP_achievement_validate_achieve_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, int achid); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_achieve_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_achieve_post[hIndex].func; + postHookFunc(sd, achid); + } + } + return; +} +void HP_achievement_validate_taming(struct map_session_data *sd, int class) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_taming_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, int *class); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_taming_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_taming_pre[hIndex].func; + preHookFunc(&sd, &class); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_taming(sd, class); + } + if (HPMHooks.count.HP_achievement_validate_taming_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, int class); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_taming_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_taming_post[hIndex].func; + postHookFunc(sd, class); + } + } + return; +} +void HP_achievement_validate_achievement_rank(struct map_session_data *sd, int rank) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_validate_achievement_rank_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, int *rank); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_achievement_rank_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_validate_achievement_rank_pre[hIndex].func; + preHookFunc(&sd, &rank); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.validate_achievement_rank(sd, rank); + } + if (HPMHooks.count.HP_achievement_validate_achievement_rank_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, int rank); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_validate_achievement_rank_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_validate_achievement_rank_post[hIndex].func; + postHookFunc(sd, rank); + } + } + return; +} +bool HP_achievement_type_requires_criteria(enum achievement_types type) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_type_requires_criteria_pre > 0) { + bool (*preHookFunc) (enum achievement_types *type); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_type_requires_criteria_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_type_requires_criteria_pre[hIndex].func; + retVal___ = preHookFunc(&type); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.type_requires_criteria(type); + } + if (HPMHooks.count.HP_achievement_type_requires_criteria_post > 0) { + bool (*postHookFunc) (bool retVal___, enum achievement_types type); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_type_requires_criteria_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_type_requires_criteria_post[hIndex].func; + retVal___ = postHookFunc(retVal___, type); + } + } + return retVal___; +} +void HP_achievement_init_titles(struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_init_titles_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_init_titles_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_init_titles_pre[hIndex].func; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.achievement.init_titles(sd); + } + if (HPMHooks.count.HP_achievement_init_titles_post > 0) { + void (*postHookFunc) (struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_init_titles_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_init_titles_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +bool HP_achievement_check_title(struct map_session_data *sd, int title_id) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_achievement_check_title_pre > 0) { + bool (*preHookFunc) (struct map_session_data **sd, int *title_id); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_check_title_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_check_title_pre[hIndex].func; + retVal___ = preHookFunc(&sd, &title_id); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.achievement.check_title(sd, title_id); + } + if (HPMHooks.count.HP_achievement_check_title_post > 0) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, int title_id); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_check_title_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_check_title_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, title_id); + } + } + return retVal___; +} +void HP_achievement_get_rewards(struct map_session_data *sd, const struct achievement_data *ad) { + int hIndex = 0; + if (HPMHooks.count.HP_achievement_get_rewards_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_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_achievement_get_rewards_pre[hIndex].func; + preHookFunc(&sd, &ad); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + 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); + for (hIndex = 0; hIndex < HPMHooks.count.HP_achievement_get_rewards_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_achievement_get_rewards_post[hIndex].func; + postHookFunc(sd, ad); + } + } + return; +} /* atcommand_interface */ void HP_atcommand_init(bool minimal) { int hIndex = 0; @@ -7834,6 +9213,32 @@ void HP_clif_takeitem(struct block_list *src, struct block_list *dst) { } return; } +void HP_clif_item_movefailed(struct map_session_data *sd, int n) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_item_movefailed_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, int *n); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_movefailed_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_item_movefailed_pre[hIndex].func; + preHookFunc(&sd, &n); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.item_movefailed(sd, n); + } + if (HPMHooks.count.HP_clif_item_movefailed_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, int n); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_movefailed_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_item_movefailed_post[hIndex].func; + postHookFunc(sd, n); + } + } + return; +} void HP_clif_item_equip(short idx, struct EQUIPITEM_INFO *p, struct item *i, struct item_data *id, int eqp_pos) { int hIndex = 0; if (HPMHooks.count.HP_clif_item_equip_pre > 0) { @@ -9300,14 +10705,14 @@ void HP_clif_maptypeproperty2(struct block_list *bl, enum send_target t) { } return; } -void HP_clif_changemapserver(struct map_session_data *sd, unsigned short map_index, int x, int y, uint32 ip, uint16 port) { +void HP_clif_changemapserver(struct map_session_data *sd, unsigned short map_index, int x, int y, uint32 ip, uint16 port, char *dnsHost) { int hIndex = 0; if (HPMHooks.count.HP_clif_changemapserver_pre > 0) { - void (*preHookFunc) (struct map_session_data **sd, unsigned short *map_index, int *x, int *y, uint32 *ip, uint16 *port); + void (*preHookFunc) (struct map_session_data **sd, unsigned short *map_index, int *x, int *y, uint32 *ip, uint16 *port, char **dnsHost); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_changemapserver_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_clif_changemapserver_pre[hIndex].func; - preHookFunc(&sd, &map_index, &x, &y, &ip, &port); + preHookFunc(&sd, &map_index, &x, &y, &ip, &port, &dnsHost); } if (*HPMforce_return) { *HPMforce_return = false; @@ -9315,13 +10720,13 @@ void HP_clif_changemapserver(struct map_session_data *sd, unsigned short map_ind } } { - HPMHooks.source.clif.changemapserver(sd, map_index, x, y, ip, port); + HPMHooks.source.clif.changemapserver(sd, map_index, x, y, ip, port, dnsHost); } if (HPMHooks.count.HP_clif_changemapserver_post > 0) { - void (*postHookFunc) (struct map_session_data *sd, unsigned short map_index, int x, int y, uint32 ip, uint16 port); + void (*postHookFunc) (struct map_session_data *sd, unsigned short map_index, int x, int y, uint32 ip, uint16 port, char *dnsHost); for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_changemapserver_post; hIndex++) { postHookFunc = HPMHooks.list.HP_clif_changemapserver_post[hIndex].func; - postHookFunc(sd, map_index, x, y, ip, port); + postHookFunc(sd, map_index, x, y, ip, port, dnsHost); } } return; @@ -10485,13 +11890,13 @@ void HP_clif_insert_card(struct map_session_data *sd, int idx_equip, int idx_car } return; } -void HP_clif_inventorylist(struct map_session_data *sd) { +void HP_clif_inventoryList(struct map_session_data *sd) { int hIndex = 0; - if (HPMHooks.count.HP_clif_inventorylist_pre > 0) { + if (HPMHooks.count.HP_clif_inventoryList_pre > 0) { void (*preHookFunc) (struct map_session_data **sd); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventorylist_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_clif_inventorylist_pre[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventoryList_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_inventoryList_pre[hIndex].func; preHookFunc(&sd); } if (*HPMforce_return) { @@ -10500,24 +11905,50 @@ void HP_clif_inventorylist(struct map_session_data *sd) { } } { - HPMHooks.source.clif.inventorylist(sd); + HPMHooks.source.clif.inventoryList(sd); } - if (HPMHooks.count.HP_clif_inventorylist_post > 0) { + if (HPMHooks.count.HP_clif_inventoryList_post > 0) { void (*postHookFunc) (struct map_session_data *sd); - for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventorylist_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_clif_inventorylist_post[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventoryList_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_inventoryList_post[hIndex].func; postHookFunc(sd); } } return; } -void HP_clif_equiplist(struct map_session_data *sd) { +void HP_clif_inventoryItems(struct map_session_data *sd, enum inventory_type type) { int hIndex = 0; - if (HPMHooks.count.HP_clif_equiplist_pre > 0) { + if (HPMHooks.count.HP_clif_inventoryItems_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, enum inventory_type *type); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventoryItems_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_inventoryItems_pre[hIndex].func; + preHookFunc(&sd, &type); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.inventoryItems(sd, type); + } + if (HPMHooks.count.HP_clif_inventoryItems_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, enum inventory_type type); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventoryItems_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_inventoryItems_post[hIndex].func; + postHookFunc(sd, type); + } + } + return; +} +void HP_clif_equipList(struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_equipList_pre > 0) { void (*preHookFunc) (struct map_session_data **sd); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_equiplist_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_clif_equiplist_pre[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_equipList_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_equipList_pre[hIndex].func; preHookFunc(&sd); } if (*HPMforce_return) { @@ -10526,24 +11957,50 @@ void HP_clif_equiplist(struct map_session_data *sd) { } } { - HPMHooks.source.clif.equiplist(sd); + HPMHooks.source.clif.equipList(sd); } - if (HPMHooks.count.HP_clif_equiplist_post > 0) { + if (HPMHooks.count.HP_clif_equipList_post > 0) { void (*postHookFunc) (struct map_session_data *sd); - for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_equiplist_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_clif_equiplist_post[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_equipList_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_equipList_post[hIndex].func; postHookFunc(sd); } } return; } -void HP_clif_cartlist(struct map_session_data *sd) { +void HP_clif_equipItems(struct map_session_data *sd, enum inventory_type type) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_equipItems_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, enum inventory_type *type); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_equipItems_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_equipItems_pre[hIndex].func; + preHookFunc(&sd, &type); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.equipItems(sd, type); + } + if (HPMHooks.count.HP_clif_equipItems_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, enum inventory_type type); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_equipItems_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_equipItems_post[hIndex].func; + postHookFunc(sd, type); + } + } + return; +} +void HP_clif_cartList(struct map_session_data *sd) { int hIndex = 0; - if (HPMHooks.count.HP_clif_cartlist_pre > 0) { + if (HPMHooks.count.HP_clif_cartList_pre > 0) { void (*preHookFunc) (struct map_session_data **sd); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_cartlist_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_clif_cartlist_pre[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_cartList_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_cartList_pre[hIndex].func; preHookFunc(&sd); } if (*HPMforce_return) { @@ -10552,17 +12009,43 @@ void HP_clif_cartlist(struct map_session_data *sd) { } } { - HPMHooks.source.clif.cartlist(sd); + HPMHooks.source.clif.cartList(sd); } - if (HPMHooks.count.HP_clif_cartlist_post > 0) { + if (HPMHooks.count.HP_clif_cartList_post > 0) { void (*postHookFunc) (struct map_session_data *sd); - for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_cartlist_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_clif_cartlist_post[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_cartList_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_cartList_post[hIndex].func; postHookFunc(sd); } } return; } +void HP_clif_cartItems(struct map_session_data *sd, enum inventory_type type) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_cartItems_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, enum inventory_type *type); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_cartItems_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_cartItems_pre[hIndex].func; + preHookFunc(&sd, &type); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.cartItems(sd, type); + } + if (HPMHooks.count.HP_clif_cartItems_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, enum inventory_type type); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_cartItems_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_cartItems_post[hIndex].func; + postHookFunc(sd, type); + } + } + 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) { @@ -13726,6 +15209,32 @@ void HP_clif_msgtable_str(struct map_session_data *sd, enum clif_messages p1, co } return; } +void HP_clif_msgtable_str_color(struct map_session_data *sd, enum clif_messages p1, const char *value, uint32 color) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_msgtable_str_color_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, enum clif_messages *p1, const char **value, uint32 *color); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_msgtable_str_color_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_msgtable_str_color_pre[hIndex].func; + preHookFunc(&sd, &p1, &value, &color); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.msgtable_str_color(sd, p1, value, color); + } + if (HPMHooks.count.HP_clif_msgtable_str_color_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, enum clif_messages p1, const char *value, uint32 color); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_msgtable_str_color_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_msgtable_str_color_post[hIndex].func; + postHookFunc(sd, p1, value, color); + } + } + return; +} void HP_clif_msgtable_color(struct map_session_data *sd, enum clif_messages p1, uint32 color) { int hIndex = 0; if (HPMHooks.count.HP_clif_msgtable_color_pre > 0) { @@ -14378,13 +15887,13 @@ void HP_clif_vendingreport(struct map_session_data *sd, int index, int amount, u } return; } -void HP_clif_storagelist(struct map_session_data *sd, struct item *items, int items_length) { +void HP_clif_storageList(struct map_session_data *sd, struct item *items, int items_length) { int hIndex = 0; - if (HPMHooks.count.HP_clif_storagelist_pre > 0) { + if (HPMHooks.count.HP_clif_storageList_pre > 0) { void (*preHookFunc) (struct map_session_data **sd, struct item **items, int *items_length); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_storagelist_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_clif_storagelist_pre[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_storageList_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_storageList_pre[hIndex].func; preHookFunc(&sd, &items, &items_length); } if (*HPMforce_return) { @@ -14393,17 +15902,121 @@ void HP_clif_storagelist(struct map_session_data *sd, struct item *items, int it } } { - HPMHooks.source.clif.storagelist(sd, items, items_length); + HPMHooks.source.clif.storageList(sd, items, items_length); } - if (HPMHooks.count.HP_clif_storagelist_post > 0) { + if (HPMHooks.count.HP_clif_storageList_post > 0) { void (*postHookFunc) (struct map_session_data *sd, struct item *items, int items_length); - for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_storagelist_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_clif_storagelist_post[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_storageList_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_storageList_post[hIndex].func; postHookFunc(sd, items, items_length); } } return; } +void HP_clif_guildStorageList(struct map_session_data *sd, struct item *items, int items_length) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_guildStorageList_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, struct item **items, int *items_length); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_guildStorageList_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_guildStorageList_pre[hIndex].func; + preHookFunc(&sd, &items, &items_length); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guildStorageList(sd, items, items_length); + } + if (HPMHooks.count.HP_clif_guildStorageList_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, struct item *items, int items_length); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_guildStorageList_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_guildStorageList_post[hIndex].func; + postHookFunc(sd, items, items_length); + } + } + return; +} +void HP_clif_storageItems(struct map_session_data *sd, enum inventory_type type, struct item *items, int items_length) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_storageItems_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, enum inventory_type *type, struct item **items, int *items_length); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_storageItems_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_storageItems_pre[hIndex].func; + preHookFunc(&sd, &type, &items, &items_length); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.storageItems(sd, type, items, items_length); + } + if (HPMHooks.count.HP_clif_storageItems_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, enum inventory_type type, struct item *items, int items_length); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_storageItems_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_storageItems_post[hIndex].func; + postHookFunc(sd, type, items, items_length); + } + } + return; +} +void HP_clif_inventoryStart(struct map_session_data *sd, enum inventory_type type, const char *name) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_inventoryStart_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, enum inventory_type *type, const char **name); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventoryStart_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_inventoryStart_pre[hIndex].func; + preHookFunc(&sd, &type, &name); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.inventoryStart(sd, type, name); + } + if (HPMHooks.count.HP_clif_inventoryStart_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, enum inventory_type type, const char *name); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventoryStart_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_inventoryStart_post[hIndex].func; + postHookFunc(sd, type, name); + } + } + return; +} +void HP_clif_inventoryEnd(struct map_session_data *sd, enum inventory_type type) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_inventoryEnd_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, enum inventory_type *type); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventoryEnd_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_inventoryEnd_pre[hIndex].func; + preHookFunc(&sd, &type); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.inventoryEnd(sd, type); + } + if (HPMHooks.count.HP_clif_inventoryEnd_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, enum inventory_type type); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_inventoryEnd_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_inventoryEnd_post[hIndex].func; + postHookFunc(sd, type); + } + } + return; +} void HP_clif_updatestorageamount(struct map_session_data *sd, int amount, int max_amount) { int hIndex = 0; if (HPMHooks.count.HP_clif_updatestorageamount_pre > 0) { @@ -15340,14 +16953,14 @@ void HP_clif_guild_inviteack(struct map_session_data *sd, int flag) { } return; } -void HP_clif_guild_leave(struct map_session_data *sd, const char *name, const char *mes) { +void HP_clif_guild_leave(struct map_session_data *sd, const char *name, int char_id, const char *mes) { int hIndex = 0; if (HPMHooks.count.HP_clif_guild_leave_pre > 0) { - void (*preHookFunc) (struct map_session_data **sd, const char **name, const char **mes); + void (*preHookFunc) (struct map_session_data **sd, const char **name, int *char_id, const char **mes); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_leave_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_clif_guild_leave_pre[hIndex].func; - preHookFunc(&sd, &name, &mes); + preHookFunc(&sd, &name, &char_id, &mes); } if (*HPMforce_return) { *HPMforce_return = false; @@ -15355,25 +16968,25 @@ void HP_clif_guild_leave(struct map_session_data *sd, const char *name, const ch } } { - HPMHooks.source.clif.guild_leave(sd, name, mes); + HPMHooks.source.clif.guild_leave(sd, name, char_id, mes); } if (HPMHooks.count.HP_clif_guild_leave_post > 0) { - void (*postHookFunc) (struct map_session_data *sd, const char *name, const char *mes); + void (*postHookFunc) (struct map_session_data *sd, const char *name, int char_id, const char *mes); for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_leave_post; hIndex++) { postHookFunc = HPMHooks.list.HP_clif_guild_leave_post[hIndex].func; - postHookFunc(sd, name, mes); + postHookFunc(sd, name, char_id, mes); } } return; } -void HP_clif_guild_expulsion(struct map_session_data *sd, const char *name, const char *mes, int account_id) { +void HP_clif_guild_expulsion(struct map_session_data *sd, const char *name, int char_id, const char *mes, int account_id) { int hIndex = 0; if (HPMHooks.count.HP_clif_guild_expulsion_pre > 0) { - void (*preHookFunc) (struct map_session_data **sd, const char **name, const char **mes, int *account_id); + void (*preHookFunc) (struct map_session_data **sd, const char **name, int *char_id, const char **mes, int *account_id); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_expulsion_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_clif_guild_expulsion_pre[hIndex].func; - preHookFunc(&sd, &name, &mes, &account_id); + preHookFunc(&sd, &name, &char_id, &mes, &account_id); } if (*HPMforce_return) { *HPMforce_return = false; @@ -15381,13 +16994,13 @@ void HP_clif_guild_expulsion(struct map_session_data *sd, const char *name, cons } } { - HPMHooks.source.clif.guild_expulsion(sd, name, mes, account_id); + HPMHooks.source.clif.guild_expulsion(sd, name, char_id, mes, account_id); } if (HPMHooks.count.HP_clif_guild_expulsion_post > 0) { - void (*postHookFunc) (struct map_session_data *sd, const char *name, const char *mes, int account_id); + void (*postHookFunc) (struct map_session_data *sd, const char *name, int char_id, const char *mes, int account_id); for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_expulsion_post; hIndex++) { postHookFunc = HPMHooks.list.HP_clif_guild_expulsion_post[hIndex].func; - postHookFunc(sd, name, mes, account_id); + postHookFunc(sd, name, char_id, mes, account_id); } } return; @@ -15834,6 +17447,58 @@ void HP_clif_guild_expulsionlist(struct map_session_data *sd) { } return; } +void HP_clif_guild_set_position(struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_guild_set_position_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_set_position_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_guild_set_position_pre[hIndex].func; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_set_position(sd); + } + if (HPMHooks.count.HP_clif_guild_set_position_post > 0) { + void (*postHookFunc) (struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_set_position_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_guild_set_position_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_guild_position_selected(struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_guild_position_selected_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_position_selected_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_guild_position_selected_pre[hIndex].func; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_position_selected(sd); + } + if (HPMHooks.count.HP_clif_guild_position_selected_post > 0) { + void (*postHookFunc) (struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_position_selected_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_guild_position_selected_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} bool HP_clif_validate_emblem(const uint8 *emblem, unsigned long emblem_len) { int hIndex = 0; bool retVal___ = false; @@ -19256,6 +20921,162 @@ unsigned char HP_clif_bl_type(struct block_list *bl) { } return retVal___; } +void HP_clif_achievement_send_list(int fd, struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_achievement_send_list_pre > 0) { + void (*preHookFunc) (int *fd, struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_achievement_send_list_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_achievement_send_list_pre[hIndex].func; + preHookFunc(&fd, &sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.achievement_send_list(fd, sd); + } + if (HPMHooks.count.HP_clif_achievement_send_list_post > 0) { + void (*postHookFunc) (int fd, struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_achievement_send_list_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_achievement_send_list_post[hIndex].func; + postHookFunc(fd, sd); + } + } + return; +} +void HP_clif_achievement_send_update(int fd, struct map_session_data *sd, const struct achievement_data *ad) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_achievement_send_update_pre > 0) { + void (*preHookFunc) (int *fd, struct map_session_data **sd, const struct achievement_data **ad); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_achievement_send_update_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_achievement_send_update_pre[hIndex].func; + preHookFunc(&fd, &sd, &ad); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.achievement_send_update(fd, sd, ad); + } + if (HPMHooks.count.HP_clif_achievement_send_update_post > 0) { + void (*postHookFunc) (int fd, struct map_session_data *sd, const struct achievement_data *ad); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_achievement_send_update_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_achievement_send_update_post[hIndex].func; + postHookFunc(fd, sd, ad); + } + } + return; +} +void HP_clif_pAchievementGetReward(int fd, struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_pAchievementGetReward_pre > 0) { + void (*preHookFunc) (int *fd, struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAchievementGetReward_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_pAchievementGetReward_pre[hIndex].func; + preHookFunc(&fd, &sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pAchievementGetReward(fd, sd); + } + if (HPMHooks.count.HP_clif_pAchievementGetReward_post > 0) { + void (*postHookFunc) (int fd, struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAchievementGetReward_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_pAchievementGetReward_post[hIndex].func; + postHookFunc(fd, sd); + } + } + return; +} +void HP_clif_achievement_reward_ack(int fd, struct map_session_data *sd, const struct achievement_data *ad) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_achievement_reward_ack_pre > 0) { + void (*preHookFunc) (int *fd, struct map_session_data **sd, const struct achievement_data **ad); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_achievement_reward_ack_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_achievement_reward_ack_pre[hIndex].func; + preHookFunc(&fd, &sd, &ad); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.achievement_reward_ack(fd, sd, ad); + } + if (HPMHooks.count.HP_clif_achievement_reward_ack_post > 0) { + void (*postHookFunc) (int fd, struct map_session_data *sd, const struct achievement_data *ad); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_achievement_reward_ack_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_achievement_reward_ack_post[hIndex].func; + postHookFunc(fd, sd, ad); + } + } + return; +} +void HP_clif_change_title_ack(int fd, struct map_session_data *sd, int title_id) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_change_title_ack_pre > 0) { + void (*preHookFunc) (int *fd, struct map_session_data **sd, int *title_id); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_change_title_ack_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_change_title_ack_pre[hIndex].func; + preHookFunc(&fd, &sd, &title_id); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.change_title_ack(fd, sd, title_id); + } + if (HPMHooks.count.HP_clif_change_title_ack_post > 0) { + void (*postHookFunc) (int fd, struct map_session_data *sd, int title_id); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_change_title_ack_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_change_title_ack_post[hIndex].func; + postHookFunc(fd, sd, title_id); + } + } + return; +} +void HP_clif_pChangeTitle(int fd, struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_pChangeTitle_pre > 0) { + void (*preHookFunc) (int *fd, struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChangeTitle_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_pChangeTitle_pre[hIndex].func; + preHookFunc(&fd, &sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pChangeTitle(fd, sd); + } + if (HPMHooks.count.HP_clif_pChangeTitle_post > 0) { + void (*postHookFunc) (int fd, struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChangeTitle_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_pChangeTitle_post[hIndex].func; + postHookFunc(fd, sd); + } + } + return; +} void HP_clif_pWantToConnection(int fd, struct map_session_data *sd) { int hIndex = 0; if (HPMHooks.count.HP_clif_pWantToConnection_pre > 0) { @@ -26278,6 +28099,58 @@ void HP_clif_hat_effect_single(struct block_list *bl, uint16 effectId, bool enab } return; } +void HP_clif_overweight_percent(struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_overweight_percent_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_overweight_percent_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_overweight_percent_pre[hIndex].func; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.overweight_percent(sd); + } + if (HPMHooks.count.HP_clif_overweight_percent_post > 0) { + void (*postHookFunc) (struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_overweight_percent_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_overweight_percent_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_pChangeDress(int fd, struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_pChangeDress_pre > 0) { + void (*preHookFunc) (int *fd, struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChangeDress_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_pChangeDress_pre[hIndex].func; + preHookFunc(&fd, &sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pChangeDress(fd, sd); + } + if (HPMHooks.count.HP_clif_pChangeDress_post > 0) { + void (*postHookFunc) (int fd, struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChangeDress_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_pChangeDress_post[hIndex].func; + postHookFunc(fd, sd); + } + } + return; +} bool HP_clif_pAttendanceDB(void) { int hIndex = 0; bool retVal___ = false; @@ -26727,6 +28600,32 @@ void HP_clif_pReqStyleChange(int fd, struct map_session_data *sd) { } return; } +void HP_clif_pReqStyleChange2(int fd, struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_pReqStyleChange2_pre > 0) { + void (*preHookFunc) (int *fd, struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReqStyleChange2_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_pReqStyleChange2_pre[hIndex].func; + preHookFunc(&fd, &sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pReqStyleChange2(fd, sd); + } + if (HPMHooks.count.HP_clif_pReqStyleChange2_post > 0) { + void (*postHookFunc) (int fd, struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReqStyleChange2_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_pReqStyleChange2_post[hIndex].func; + postHookFunc(fd, sd); + } + } + return; +} void HP_clif_cz_req_style_change_sub(struct map_session_data *sd, int type, int16 idx, bool isitem) { int hIndex = 0; if (HPMHooks.count.HP_clif_cz_req_style_change_sub_pre > 0) { @@ -26831,6 +28730,58 @@ void HP_clif_petEvolutionResult(int fd, enum pet_evolution_result result) { } return; } +void HP_clif_party_dead_notification(struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_party_dead_notification_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_dead_notification_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_party_dead_notification_pre[hIndex].func; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.party_dead_notification(sd); + } + if (HPMHooks.count.HP_clif_party_dead_notification_post > 0) { + void (*postHookFunc) (struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_dead_notification_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_party_dead_notification_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_pMemorialDungeonCommand(int fd, struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_pMemorialDungeonCommand_pre > 0) { + void (*preHookFunc) (int *fd, struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMemorialDungeonCommand_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_pMemorialDungeonCommand_pre[hIndex].func; + preHookFunc(&fd, &sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pMemorialDungeonCommand(fd, sd); + } + if (HPMHooks.count.HP_clif_pMemorialDungeonCommand_post > 0) { + void (*postHookFunc) (int fd, struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMemorialDungeonCommand_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_pMemorialDungeonCommand_post[hIndex].func; + postHookFunc(fd, sd); + } + } + return; +} /* cmdline_interface */ void HP_cmdline_init(void) { int hIndex = 0; @@ -33525,6 +35476,32 @@ int HP_instance_destroy_timer(int tid, int64 tick, int id, intptr_t data) { } return retVal___; } +void HP_instance_force_destroy(struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_instance_force_destroy_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_instance_force_destroy_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_instance_force_destroy_pre[hIndex].func; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.instance.force_destroy(sd); + } + if (HPMHooks.count.HP_instance_force_destroy_post > 0) { + void (*postHookFunc) (struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_instance_force_destroy_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_instance_force_destroy_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} /* intif_interface */ int HP_intif_parse(int fd) { int hIndex = 0; @@ -33795,10 +35772,10 @@ void HP_intif_request_account_storage(const struct map_session_data *sd) { } return; } -void HP_intif_send_account_storage(const struct map_session_data *sd) { +void HP_intif_send_account_storage(struct map_session_data *sd) { int hIndex = 0; if (HPMHooks.count.HP_intif_send_account_storage_pre > 0) { - void (*preHookFunc) (const struct map_session_data **sd); + void (*preHookFunc) (struct map_session_data **sd); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_send_account_storage_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_intif_send_account_storage_pre[hIndex].func; @@ -33813,7 +35790,7 @@ void HP_intif_send_account_storage(const struct map_session_data *sd) { HPMHooks.source.intif.send_account_storage(sd); } if (HPMHooks.count.HP_intif_send_account_storage_post > 0) { - void (*postHookFunc) (const struct map_session_data *sd); + void (*postHookFunc) (struct map_session_data *sd); for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_send_account_storage_post; hIndex++) { postHookFunc = HPMHooks.list.HP_intif_send_account_storage_post[hIndex].func; postHookFunc(sd); @@ -35627,6 +37604,58 @@ int HP_intif_CheckForCharServer(void) { } return retVal___; } +void HP_intif_achievements_request(struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_intif_achievements_request_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_achievements_request_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_intif_achievements_request_pre[hIndex].func; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.achievements_request(sd); + } + if (HPMHooks.count.HP_intif_achievements_request_post > 0) { + void (*postHookFunc) (struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_achievements_request_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_intif_achievements_request_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_intif_achievements_save(struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_intif_achievements_save_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_achievements_save_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_intif_achievements_save_pre[hIndex].func; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.achievements_save(sd); + } + if (HPMHooks.count.HP_intif_achievements_save_post > 0) { + void (*postHookFunc) (struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_achievements_save_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_intif_achievements_save_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} void HP_intif_pWisMessage(int fd) { int hIndex = 0; if (HPMHooks.count.HP_intif_pWisMessage_pre > 0) { @@ -37428,6 +39457,32 @@ void HP_intif_pRecvClanMemberAction(int fd) { } return; } +void HP_intif_pAchievementsLoad(int fd) { + int hIndex = 0; + if (HPMHooks.count.HP_intif_pAchievementsLoad_pre > 0) { + void (*preHookFunc) (int *fd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAchievementsLoad_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_intif_pAchievementsLoad_pre[hIndex].func; + preHookFunc(&fd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pAchievementsLoad(fd); + } + if (HPMHooks.count.HP_intif_pAchievementsLoad_post > 0) { + void (*postHookFunc) (int fd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAchievementsLoad_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_intif_pAchievementsLoad_post[hIndex].func; + postHookFunc(fd); + } + } + return; +} /* irc_bot_interface */ void HP_ircbot_init(bool minimal) { int hIndex = 0; @@ -42438,6 +44493,32 @@ void HP_map_zone_change2(int m, struct map_zone_data *zone) { } return; } +void HP_map_zone_reload(void) { + int hIndex = 0; + if (HPMHooks.count.HP_map_zone_reload_pre > 0) { + void (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_reload_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_map_zone_reload_pre[hIndex].func; + preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.zone_reload(); + } + if (HPMHooks.count.HP_map_zone_reload_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_reload_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_map_zone_reload_post[hIndex].func; + postHookFunc(); + } + } + return; +} int HP_map_getcell(int16 m, const struct block_list *bl, int16 x, int16 y, cell_chk cellchk) { int hIndex = 0; int retVal___ = 0; @@ -62356,6 +64437,33 @@ bool HP_pc_isDeathPenaltyJob(uint16 job) { } return retVal___; } +bool HP_pc_has_second_costume(struct map_session_data *sd) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_pc_has_second_costume_pre > 0) { + bool (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_has_second_costume_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_pc_has_second_costume_pre[hIndex].func; + retVal___ = preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.has_second_costume(sd); + } + if (HPMHooks.count.HP_pc_has_second_costume_post > 0) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_has_second_costume_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_pc_has_second_costume_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + 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; @@ -66621,6 +68729,33 @@ int HP_script_add_str(const char *p) { } return retVal___; } +int HP_script_add_variable(const char *varname) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_script_add_variable_pre > 0) { + int (*preHookFunc) (const char **varname); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_script_add_variable_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_script_add_variable_pre[hIndex].func; + retVal___ = preHookFunc(&varname); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.add_variable(varname); + } + if (HPMHooks.count.HP_script_add_variable_post > 0) { + int (*postHookFunc) (int retVal___, const char *varname); + for (hIndex = 0; hIndex < HPMHooks.count.HP_script_add_variable_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_script_add_variable_post[hIndex].func; + retVal___ = postHookFunc(retVal___, varname); + } + } + return retVal___; +} const char* HP_script_get_str(int id) { int hIndex = 0; const char* retVal___ = NULL; @@ -75059,14 +77194,14 @@ void HP_skill_init_unit_layout(void) { } return; } -void HP_skill_init_unit_layout_unknown(int skill_idx) { +void HP_skill_init_unit_layout_unknown(int skill_idx, int pos) { int hIndex = 0; if (HPMHooks.count.HP_skill_init_unit_layout_unknown_pre > 0) { - void (*preHookFunc) (int *skill_idx); + void (*preHookFunc) (int *skill_idx, int *pos); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_init_unit_layout_unknown_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_skill_init_unit_layout_unknown_pre[hIndex].func; - preHookFunc(&skill_idx); + preHookFunc(&skill_idx, &pos); } if (*HPMforce_return) { *HPMforce_return = false; @@ -75074,13 +77209,13 @@ void HP_skill_init_unit_layout_unknown(int skill_idx) { } } { - HPMHooks.source.skill.init_unit_layout_unknown(skill_idx); + HPMHooks.source.skill.init_unit_layout_unknown(skill_idx, pos); } if (HPMHooks.count.HP_skill_init_unit_layout_unknown_post > 0) { - void (*postHookFunc) (int skill_idx); + void (*postHookFunc) (int skill_idx, int pos); for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_init_unit_layout_unknown_post; hIndex++) { postHookFunc = HPMHooks.list.HP_skill_init_unit_layout_unknown_post[hIndex].func; - postHookFunc(skill_idx); + postHookFunc(skill_idx, pos); } } return; diff --git a/src/plugins/HPMHooking/HPMHooking_map.sources.inc b/src/plugins/HPMHooking/HPMHooking_map.sources.inc index e6f305726..151a5d8a1 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.sources.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.sources.inc @@ -26,6 +26,7 @@ /* GENERATED FILE DO NOT EDIT */ HPMHooks.source.HCache = *HCache; +HPMHooks.source.achievement = *achievement; HPMHooks.source.atcommand = *atcommand; HPMHooks.source.battle = *battle; HPMHooks.source.bg = *bg; |