From d966a8e6860d418bb3a235e57928436127eba555 Mon Sep 17 00:00:00 2001 From: smokexyz Date: Mon, 22 May 2017 20:51:25 +0800 Subject: HPM Hook Update follow-up e8affc41f106503b530abaa7faa20d6e63b727b8 --- src/plugins/HPMHooking/HPMHooking.Defs.inc | 24 ++- .../HPMHooking/HPMHooking_char.HPMHooksCore.inc | 24 +++ .../HPMHooking/HPMHooking_char.HookingPoints.inc | 6 + src/plugins/HPMHooking/HPMHooking_char.Hooks.inc | 185 ++++++++++++++++++++- .../HPMHooking/HPMHooking_map.HPMHooksCore.inc | 16 ++ .../HPMHooking/HPMHooking_map.HookingPoints.inc | 4 + src/plugins/HPMHooking/HPMHooking_map.Hooks.inc | 104 ++++++++++++ 7 files changed, 355 insertions(+), 8 deletions(-) (limited to 'src/plugins/HPMHooking') diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc index 7042a43a7..65c7f23b1 100644 --- a/src/plugins/HPMHooking/HPMHooking.Defs.inc +++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc @@ -2962,8 +2962,12 @@ typedef int (*HPMHOOK_pre_inter_quest_parse_frommap) (int *fd); typedef int (*HPMHOOK_post_inter_quest_parse_frommap) (int retVal___, int fd); #endif // CHAR_INT_QUEST_H #ifdef CHAR_INT_STORAGE_H /* inter_storage */ -typedef int (*HPMHOOK_pre_inter_storage_tosql) (int *account_id, struct storage_data **p); -typedef int (*HPMHOOK_post_inter_storage_tosql) (int retVal___, int account_id, struct storage_data *p); +typedef struct DBData (*HPMHOOK_pre_inter_storage_ensure_account_storage) (union DBKey *key, va_list args); +typedef struct DBData (*HPMHOOK_post_inter_storage_ensure_account_storage) (struct DBData retVal___, union DBKey key, va_list args); +typedef int (*HPMHOOK_pre_inter_storage_clear_account_storage) (union DBKey *key, struct DBData **data, va_list args); +typedef int (*HPMHOOK_post_inter_storage_clear_account_storage) (int retVal___, union DBKey key, struct DBData *data, va_list args); +typedef int (*HPMHOOK_pre_inter_storage_tosql) (int *account_id, struct storage_data **cp, const struct storage_data **p); +typedef int (*HPMHOOK_post_inter_storage_tosql) (int retVal___, int account_id, struct storage_data *cp, const struct storage_data *p); typedef int (*HPMHOOK_pre_inter_storage_fromsql) (int *account_id, struct storage_data **p); typedef int (*HPMHOOK_post_inter_storage_fromsql) (int retVal___, int account_id, struct storage_data *p); typedef int (*HPMHOOK_pre_inter_storage_guild_storage_tosql) (int *guild_id, const struct guild_storage **p); @@ -3000,6 +3004,10 @@ typedef int (*HPMHOOK_pre_intif_saveregistry) (struct map_session_data **sd); typedef int (*HPMHOOK_post_intif_saveregistry) (int retVal___, struct map_session_data *sd); typedef int (*HPMHOOK_pre_intif_request_registry) (struct map_session_data **sd, int *flag); 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 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); @@ -3130,10 +3138,14 @@ typedef void (*HPMHOOK_pre_intif_pWisToGM) (int *fd); typedef void (*HPMHOOK_post_intif_pWisToGM) (int fd); typedef void (*HPMHOOK_pre_intif_pRegisters) (int *fd); typedef void (*HPMHOOK_post_intif_pRegisters) (int fd); +typedef void (*HPMHOOK_pre_intif_pAccountStorage) (int *fd); +typedef void (*HPMHOOK_post_intif_pAccountStorage) (int fd); typedef void (*HPMHOOK_pre_intif_pChangeNameOk) (int *fd); typedef void (*HPMHOOK_post_intif_pChangeNameOk) (int fd); typedef void (*HPMHOOK_pre_intif_pMessageToFD) (int *fd); typedef void (*HPMHOOK_post_intif_pMessageToFD) (int fd); +typedef void (*HPMHOOK_pre_intif_pAccountStorageSaveAck) (int *fd); +typedef void (*HPMHOOK_post_intif_pAccountStorageSaveAck) (int fd); typedef void (*HPMHOOK_pre_intif_pLoadGuildStorage) (int *fd); typedef void (*HPMHOOK_post_intif_pLoadGuildStorage) (int fd); typedef void (*HPMHOOK_pre_intif_pSaveGuildStorage) (int *fd); @@ -4366,6 +4378,14 @@ typedef int (*HPMHOOK_pre_mapif_parse_LoadGuildStorage) (int *fd); typedef int (*HPMHOOK_post_mapif_parse_LoadGuildStorage) (int retVal___, int fd); typedef int (*HPMHOOK_pre_mapif_parse_SaveGuildStorage) (int *fd); typedef int (*HPMHOOK_post_mapif_parse_SaveGuildStorage) (int retVal___, int fd); +typedef int (*HPMHOOK_pre_mapif_account_storage_load) (int *fd, int *account_id); +typedef int (*HPMHOOK_post_mapif_account_storage_load) (int retVal___, int fd, int account_id); +typedef int (*HPMHOOK_pre_mapif_pAccountStorageLoad) (int *fd); +typedef int (*HPMHOOK_post_mapif_pAccountStorageLoad) (int retVal___, int fd); +typedef int (*HPMHOOK_pre_mapif_pAccountStorageSave) (int *fd); +typedef int (*HPMHOOK_post_mapif_pAccountStorageSave) (int retVal___, int fd); +typedef void (*HPMHOOK_pre_mapif_sAccountStorageSaveAck) (int *fd, int *account_id, bool *save); +typedef void (*HPMHOOK_post_mapif_sAccountStorageSaveAck) (int fd, int account_id, bool save); typedef int (*HPMHOOK_pre_mapif_itembound_ack) (int *fd, int *aid, int *guild_id); typedef int (*HPMHOOK_post_mapif_itembound_ack) (int retVal___, int fd, int aid, int guild_id); typedef int (*HPMHOOK_pre_mapif_parse_ItemBoundRetrieve_sub) (int *fd); diff --git a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc index eb5583035..5e449a4d1 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc @@ -624,6 +624,10 @@ struct { struct HPMHookPoint *HP_inter_pet_parse_frommap_post; struct HPMHookPoint *HP_inter_quest_parse_frommap_pre; struct HPMHookPoint *HP_inter_quest_parse_frommap_post; + struct HPMHookPoint *HP_inter_storage_ensure_account_storage_pre; + struct HPMHookPoint *HP_inter_storage_ensure_account_storage_post; + struct HPMHookPoint *HP_inter_storage_clear_account_storage_pre; + struct HPMHookPoint *HP_inter_storage_clear_account_storage_post; struct HPMHookPoint *HP_inter_storage_tosql_pre; struct HPMHookPoint *HP_inter_storage_tosql_post; struct HPMHookPoint *HP_inter_storage_fromsql_pre; @@ -1104,6 +1108,14 @@ struct { struct HPMHookPoint *HP_mapif_parse_LoadGuildStorage_post; struct HPMHookPoint *HP_mapif_parse_SaveGuildStorage_pre; struct HPMHookPoint *HP_mapif_parse_SaveGuildStorage_post; + struct HPMHookPoint *HP_mapif_account_storage_load_pre; + struct HPMHookPoint *HP_mapif_account_storage_load_post; + struct HPMHookPoint *HP_mapif_pAccountStorageLoad_pre; + struct HPMHookPoint *HP_mapif_pAccountStorageLoad_post; + struct HPMHookPoint *HP_mapif_pAccountStorageSave_pre; + struct HPMHookPoint *HP_mapif_pAccountStorageSave_post; + struct HPMHookPoint *HP_mapif_sAccountStorageSaveAck_pre; + struct HPMHookPoint *HP_mapif_sAccountStorageSaveAck_post; struct HPMHookPoint *HP_mapif_itembound_ack_pre; struct HPMHookPoint *HP_mapif_itembound_ack_post; struct HPMHookPoint *HP_mapif_parse_ItemBoundRetrieve_sub_pre; @@ -2101,6 +2113,10 @@ struct { int HP_inter_pet_parse_frommap_post; int HP_inter_quest_parse_frommap_pre; int HP_inter_quest_parse_frommap_post; + int HP_inter_storage_ensure_account_storage_pre; + int HP_inter_storage_ensure_account_storage_post; + int HP_inter_storage_clear_account_storage_pre; + int HP_inter_storage_clear_account_storage_post; int HP_inter_storage_tosql_pre; int HP_inter_storage_tosql_post; int HP_inter_storage_fromsql_pre; @@ -2581,6 +2597,14 @@ struct { int HP_mapif_parse_LoadGuildStorage_post; int HP_mapif_parse_SaveGuildStorage_pre; int HP_mapif_parse_SaveGuildStorage_post; + int HP_mapif_account_storage_load_pre; + int HP_mapif_account_storage_load_post; + int HP_mapif_pAccountStorageLoad_pre; + int HP_mapif_pAccountStorageLoad_post; + int HP_mapif_pAccountStorageSave_pre; + int HP_mapif_pAccountStorageSave_post; + int HP_mapif_sAccountStorageSaveAck_pre; + int HP_mapif_sAccountStorageSaveAck_post; int HP_mapif_itembound_ack_pre; int HP_mapif_itembound_ack_post; int HP_mapif_parse_ItemBoundRetrieve_sub_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc index 29720bf40..9b07bdccd 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc @@ -344,6 +344,8 @@ struct HookingPointData HookingPoints[] = { /* inter_quest_interface */ { HP_POP(inter_quest->parse_frommap, HP_inter_quest_parse_frommap) }, /* inter_storage_interface */ + { HP_POP(inter_storage->ensure_account_storage, HP_inter_storage_ensure_account_storage) }, + { HP_POP(inter_storage->clear_account_storage, HP_inter_storage_clear_account_storage) }, { HP_POP(inter_storage->tosql, HP_inter_storage_tosql) }, { HP_POP(inter_storage->fromsql, HP_inter_storage_fromsql) }, { HP_POP(inter_storage->guild_storage_tosql, HP_inter_storage_guild_storage_tosql) }, @@ -587,6 +589,10 @@ struct HookingPointData HookingPoints[] = { { HP_POP(mapif->save_guild_storage_ack, HP_mapif_save_guild_storage_ack) }, { HP_POP(mapif->parse_LoadGuildStorage, HP_mapif_parse_LoadGuildStorage) }, { HP_POP(mapif->parse_SaveGuildStorage, HP_mapif_parse_SaveGuildStorage) }, + { HP_POP(mapif->account_storage_load, HP_mapif_account_storage_load) }, + { HP_POP(mapif->pAccountStorageLoad, HP_mapif_pAccountStorageLoad) }, + { HP_POP(mapif->pAccountStorageSave, HP_mapif_pAccountStorageSave) }, + { HP_POP(mapif->sAccountStorageSaveAck, HP_mapif_sAccountStorageSaveAck) }, { HP_POP(mapif->itembound_ack, HP_mapif_itembound_ack) }, { HP_POP(mapif->parse_ItemBoundRetrieve_sub, HP_mapif_parse_ItemBoundRetrieve_sub) }, { HP_POP(mapif->parse_ItemBoundRetrieve, HP_mapif_parse_ItemBoundRetrieve) }, diff --git a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc index d2853fcdc..656fd8e07 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc @@ -8032,15 +8032,81 @@ int HP_inter_quest_parse_frommap(int fd) { return retVal___; } /* inter_storage_interface */ -int HP_inter_storage_tosql(int account_id, struct storage_data *p) { +struct DBData HP_inter_storage_ensure_account_storage(union DBKey key, va_list args) { + int hIndex = 0; + struct DBData retVal___ = { 0 }; + if (HPMHooks.count.HP_inter_storage_ensure_account_storage_pre > 0) { + struct DBData (*preHookFunc) (union DBKey *key, va_list args); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_ensure_account_storage_pre; hIndex++) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_inter_storage_ensure_account_storage_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_storage.ensure_account_storage(key, args___copy); + va_end(args___copy); + } + if (HPMHooks.count.HP_inter_storage_ensure_account_storage_post > 0) { + struct DBData (*postHookFunc) (struct DBData retVal___, union DBKey key, va_list args); + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_ensure_account_storage_post; hIndex++) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_inter_storage_ensure_account_storage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, key, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +int HP_inter_storage_clear_account_storage(union DBKey key, struct DBData *data, va_list args) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_inter_storage_clear_account_storage_pre > 0) { + int (*preHookFunc) (union DBKey *key, struct DBData **data, va_list args); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_clear_account_storage_pre; hIndex++) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_inter_storage_clear_account_storage_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_storage.clear_account_storage(key, data, args___copy); + va_end(args___copy); + } + if (HPMHooks.count.HP_inter_storage_clear_account_storage_post > 0) { + int (*postHookFunc) (int retVal___, union DBKey key, struct DBData *data, va_list args); + for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_clear_account_storage_post; hIndex++) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_inter_storage_clear_account_storage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, key, data, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +int HP_inter_storage_tosql(int account_id, struct storage_data *cp, const struct storage_data *p) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_inter_storage_tosql_pre > 0) { - int (*preHookFunc) (int *account_id, struct storage_data **p); + int (*preHookFunc) (int *account_id, struct storage_data **cp, const struct storage_data **p); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_tosql_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_inter_storage_tosql_pre[hIndex].func; - retVal___ = preHookFunc(&account_id, &p); + retVal___ = preHookFunc(&account_id, &cp, &p); } if (*HPMforce_return) { *HPMforce_return = false; @@ -8048,13 +8114,13 @@ int HP_inter_storage_tosql(int account_id, struct storage_data *p) { } } { - retVal___ = HPMHooks.source.inter_storage.tosql(account_id, p); + retVal___ = HPMHooks.source.inter_storage.tosql(account_id, cp, p); } if (HPMHooks.count.HP_inter_storage_tosql_post > 0) { - int (*postHookFunc) (int retVal___, int account_id, struct storage_data *p); + int (*postHookFunc) (int retVal___, int account_id, struct storage_data *cp, const struct storage_data *p); for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_tosql_post; hIndex++) { postHookFunc = HPMHooks.list.HP_inter_storage_tosql_post[hIndex].func; - retVal___ = postHookFunc(retVal___, account_id, p); + retVal___ = postHookFunc(retVal___, account_id, cp, p); } } return retVal___; @@ -14430,6 +14496,113 @@ int HP_mapif_parse_SaveGuildStorage(int fd) { } return retVal___; } +int HP_mapif_account_storage_load(int fd, int account_id) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_mapif_account_storage_load_pre > 0) { + int (*preHookFunc) (int *fd, int *account_id); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_account_storage_load_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapif_account_storage_load_pre[hIndex].func; + retVal___ = preHookFunc(&fd, &account_id); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapif.account_storage_load(fd, account_id); + } + if (HPMHooks.count.HP_mapif_account_storage_load_post > 0) { + int (*postHookFunc) (int retVal___, int fd, int account_id); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_account_storage_load_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapif_account_storage_load_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fd, account_id); + } + } + return retVal___; +} +int HP_mapif_pAccountStorageLoad(int fd) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_mapif_pAccountStorageLoad_pre > 0) { + int (*preHookFunc) (int *fd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_pAccountStorageLoad_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapif_pAccountStorageLoad_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapif.pAccountStorageLoad(fd); + } + if (HPMHooks.count.HP_mapif_pAccountStorageLoad_post > 0) { + int (*postHookFunc) (int retVal___, int fd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_pAccountStorageLoad_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapif_pAccountStorageLoad_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fd); + } + } + return retVal___; +} +int HP_mapif_pAccountStorageSave(int fd) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_mapif_pAccountStorageSave_pre > 0) { + int (*preHookFunc) (int *fd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_pAccountStorageSave_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapif_pAccountStorageSave_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapif.pAccountStorageSave(fd); + } + if (HPMHooks.count.HP_mapif_pAccountStorageSave_post > 0) { + int (*postHookFunc) (int retVal___, int fd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_pAccountStorageSave_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapif_pAccountStorageSave_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fd); + } + } + return retVal___; +} +void HP_mapif_sAccountStorageSaveAck(int fd, int account_id, bool save) { + int hIndex = 0; + if (HPMHooks.count.HP_mapif_sAccountStorageSaveAck_pre > 0) { + void (*preHookFunc) (int *fd, int *account_id, bool *save); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_sAccountStorageSaveAck_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapif_sAccountStorageSaveAck_pre[hIndex].func; + preHookFunc(&fd, &account_id, &save); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapif.sAccountStorageSaveAck(fd, account_id, save); + } + if (HPMHooks.count.HP_mapif_sAccountStorageSaveAck_post > 0) { + void (*postHookFunc) (int fd, int account_id, bool save); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_sAccountStorageSaveAck_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapif_sAccountStorageSaveAck_post[hIndex].func; + postHookFunc(fd, account_id, save); + } + } + return; +} int HP_mapif_itembound_ack(int fd, int aid, int guild_id) { int hIndex = 0; int retVal___ = 0; diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc index 762acb747..e84a9bd0d 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc @@ -2386,6 +2386,10 @@ struct { struct HPMHookPoint *HP_intif_saveregistry_post; struct HPMHookPoint *HP_intif_request_registry_pre; struct HPMHookPoint *HP_intif_request_registry_post; + struct HPMHookPoint *HP_intif_request_account_storage_pre; + struct HPMHookPoint *HP_intif_request_account_storage_post; + struct HPMHookPoint *HP_intif_send_account_storage_pre; + struct HPMHookPoint *HP_intif_send_account_storage_post; struct HPMHookPoint *HP_intif_request_guild_storage_pre; struct HPMHookPoint *HP_intif_request_guild_storage_post; struct HPMHookPoint *HP_intif_send_guild_storage_pre; @@ -2516,10 +2520,14 @@ struct { struct HPMHookPoint *HP_intif_pWisToGM_post; struct HPMHookPoint *HP_intif_pRegisters_pre; struct HPMHookPoint *HP_intif_pRegisters_post; + struct HPMHookPoint *HP_intif_pAccountStorage_pre; + struct HPMHookPoint *HP_intif_pAccountStorage_post; struct HPMHookPoint *HP_intif_pChangeNameOk_pre; struct HPMHookPoint *HP_intif_pChangeNameOk_post; struct HPMHookPoint *HP_intif_pMessageToFD_pre; struct HPMHookPoint *HP_intif_pMessageToFD_post; + struct HPMHookPoint *HP_intif_pAccountStorageSaveAck_pre; + struct HPMHookPoint *HP_intif_pAccountStorageSaveAck_post; struct HPMHookPoint *HP_intif_pLoadGuildStorage_pre; struct HPMHookPoint *HP_intif_pLoadGuildStorage_post; struct HPMHookPoint *HP_intif_pSaveGuildStorage_pre; @@ -8441,6 +8449,10 @@ struct { int HP_intif_saveregistry_post; int HP_intif_request_registry_pre; int HP_intif_request_registry_post; + int HP_intif_request_account_storage_pre; + int HP_intif_request_account_storage_post; + int HP_intif_send_account_storage_pre; + int HP_intif_send_account_storage_post; int HP_intif_request_guild_storage_pre; int HP_intif_request_guild_storage_post; int HP_intif_send_guild_storage_pre; @@ -8571,10 +8583,14 @@ struct { int HP_intif_pWisToGM_post; int HP_intif_pRegisters_pre; int HP_intif_pRegisters_post; + int HP_intif_pAccountStorage_pre; + int HP_intif_pAccountStorage_post; int HP_intif_pChangeNameOk_pre; int HP_intif_pChangeNameOk_post; int HP_intif_pMessageToFD_pre; int HP_intif_pMessageToFD_post; + int HP_intif_pAccountStorageSaveAck_pre; + int HP_intif_pAccountStorageSaveAck_post; int HP_intif_pLoadGuildStorage_pre; int HP_intif_pLoadGuildStorage_post; int HP_intif_pSaveGuildStorage_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc index 65cd9ea82..a8ec0b4f5 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc @@ -1228,6 +1228,8 @@ struct HookingPointData HookingPoints[] = { { HP_POP(intif->wis_message_to_gm, HP_intif_wis_message_to_gm) }, { HP_POP(intif->saveregistry, HP_intif_saveregistry) }, { HP_POP(intif->request_registry, HP_intif_request_registry) }, + { HP_POP(intif->request_account_storage, HP_intif_request_account_storage) }, + { HP_POP(intif->send_account_storage, HP_intif_send_account_storage) }, { HP_POP(intif->request_guild_storage, HP_intif_request_guild_storage) }, { HP_POP(intif->send_guild_storage, HP_intif_send_guild_storage) }, { HP_POP(intif->create_party, HP_intif_create_party) }, @@ -1293,8 +1295,10 @@ struct HookingPointData HookingPoints[] = { { HP_POP(intif->pWisToGM_sub, HP_intif_pWisToGM_sub) }, { HP_POP(intif->pWisToGM, HP_intif_pWisToGM) }, { HP_POP(intif->pRegisters, HP_intif_pRegisters) }, + { HP_POP(intif->pAccountStorage, HP_intif_pAccountStorage) }, { HP_POP(intif->pChangeNameOk, HP_intif_pChangeNameOk) }, { HP_POP(intif->pMessageToFD, HP_intif_pMessageToFD) }, + { HP_POP(intif->pAccountStorageSaveAck, HP_intif_pAccountStorageSaveAck) }, { HP_POP(intif->pLoadGuildStorage, HP_intif_pLoadGuildStorage) }, { HP_POP(intif->pSaveGuildStorage, HP_intif_pSaveGuildStorage) }, { HP_POP(intif->pPartyCreated, HP_intif_pPartyCreated) }, diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc index 884e1e920..a13074cb9 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc @@ -31323,6 +31323,58 @@ int HP_intif_request_registry(struct map_session_data *sd, int flag) { } return retVal___; } +void HP_intif_request_account_storage(const struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_intif_request_account_storage_pre > 0) { + void (*preHookFunc) (const struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_request_account_storage_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_intif_request_account_storage_pre[hIndex].func; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.request_account_storage(sd); + } + if (HPMHooks.count.HP_intif_request_account_storage_post > 0) { + void (*postHookFunc) (const struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_request_account_storage_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_intif_request_account_storage_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_intif_send_account_storage(const 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); + *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; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + 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); + 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); + } + } + return; +} int HP_intif_request_guild_storage(int account_id, int guild_id) { int hIndex = 0; int retVal___ = 0; @@ -33077,6 +33129,32 @@ void HP_intif_pRegisters(int fd) { } return; } +void HP_intif_pAccountStorage(int fd) { + int hIndex = 0; + if (HPMHooks.count.HP_intif_pAccountStorage_pre > 0) { + void (*preHookFunc) (int *fd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAccountStorage_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_intif_pAccountStorage_pre[hIndex].func; + preHookFunc(&fd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pAccountStorage(fd); + } + if (HPMHooks.count.HP_intif_pAccountStorage_post > 0) { + void (*postHookFunc) (int fd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAccountStorage_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_intif_pAccountStorage_post[hIndex].func; + postHookFunc(fd); + } + } + return; +} void HP_intif_pChangeNameOk(int fd) { int hIndex = 0; if (HPMHooks.count.HP_intif_pChangeNameOk_pre > 0) { @@ -33129,6 +33207,32 @@ void HP_intif_pMessageToFD(int fd) { } return; } +void HP_intif_pAccountStorageSaveAck(int fd) { + int hIndex = 0; + if (HPMHooks.count.HP_intif_pAccountStorageSaveAck_pre > 0) { + void (*preHookFunc) (int *fd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAccountStorageSaveAck_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_intif_pAccountStorageSaveAck_pre[hIndex].func; + preHookFunc(&fd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pAccountStorageSaveAck(fd); + } + if (HPMHooks.count.HP_intif_pAccountStorageSaveAck_post > 0) { + void (*postHookFunc) (int fd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAccountStorageSaveAck_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_intif_pAccountStorageSaveAck_post[hIndex].func; + postHookFunc(fd); + } + } + return; +} void HP_intif_pLoadGuildStorage(int fd) { int hIndex = 0; if (HPMHooks.count.HP_intif_pLoadGuildStorage_pre > 0) { -- cgit v1.2.3-60-g2f50