diff options
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc | 8 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc | 2 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_map.Hooks.inc | 64 |
3 files changed, 68 insertions, 6 deletions
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc index d3210cbe7..c6e55bfe3 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc @@ -2670,6 +2670,8 @@ struct { struct HPMHookPoint *HP_itemdb_searchrandomid_post; struct HPMHookPoint *HP_itemdb_typename_pre; struct HPMHookPoint *HP_itemdb_typename_post; + struct HPMHookPoint *HP_itemdb_jobmask2mapid_pre; + struct HPMHookPoint *HP_itemdb_jobmask2mapid_post; struct HPMHookPoint *HP_itemdb_jobid2mapid_pre; struct HPMHookPoint *HP_itemdb_jobid2mapid_post; struct HPMHookPoint *HP_itemdb_create_dummy_data_pre; @@ -2718,6 +2720,8 @@ struct { struct HPMHookPoint *HP_itemdb_validate_entry_post; struct HPMHookPoint *HP_itemdb_readdb_additional_fields_pre; struct HPMHookPoint *HP_itemdb_readdb_additional_fields_post; + struct HPMHookPoint *HP_itemdb_readdb_job_sub_pre; + struct HPMHookPoint *HP_itemdb_readdb_job_sub_post; struct HPMHookPoint *HP_itemdb_readdb_libconfig_sub_pre; struct HPMHookPoint *HP_itemdb_readdb_libconfig_sub_post; struct HPMHookPoint *HP_itemdb_readdb_libconfig_pre; @@ -8541,6 +8545,8 @@ struct { int HP_itemdb_searchrandomid_post; int HP_itemdb_typename_pre; int HP_itemdb_typename_post; + int HP_itemdb_jobmask2mapid_pre; + int HP_itemdb_jobmask2mapid_post; int HP_itemdb_jobid2mapid_pre; int HP_itemdb_jobid2mapid_post; int HP_itemdb_create_dummy_data_pre; @@ -8589,6 +8595,8 @@ struct { int HP_itemdb_validate_entry_post; int HP_itemdb_readdb_additional_fields_pre; int HP_itemdb_readdb_additional_fields_post; + int HP_itemdb_readdb_job_sub_pre; + int HP_itemdb_readdb_job_sub_post; int HP_itemdb_readdb_libconfig_sub_pre; int HP_itemdb_readdb_libconfig_sub_post; int HP_itemdb_readdb_libconfig_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc index 4ccb217a1..c2d104cda 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc @@ -1368,6 +1368,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(itemdb->searchname_array_sub, HP_itemdb_searchname_array_sub) }, { HP_POP(itemdb->searchrandomid, HP_itemdb_searchrandomid) }, { HP_POP(itemdb->typename, HP_itemdb_typename) }, + { HP_POP(itemdb->jobmask2mapid, HP_itemdb_jobmask2mapid) }, { HP_POP(itemdb->jobid2mapid, HP_itemdb_jobid2mapid) }, { HP_POP(itemdb->create_dummy_data, HP_itemdb_create_dummy_data) }, { HP_POP(itemdb->create_item_data, HP_itemdb_create_item_data) }, @@ -1392,6 +1393,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(itemdb->gendercheck, HP_itemdb_gendercheck) }, { HP_POP(itemdb->validate_entry, HP_itemdb_validate_entry) }, { HP_POP(itemdb->readdb_additional_fields, HP_itemdb_readdb_additional_fields) }, + { HP_POP(itemdb->readdb_job_sub, HP_itemdb_readdb_job_sub) }, { HP_POP(itemdb->readdb_libconfig_sub, HP_itemdb_readdb_libconfig_sub) }, { HP_POP(itemdb->readdb_libconfig, HP_itemdb_readdb_libconfig) }, { HP_POP(itemdb->unique_id, HP_itemdb_unique_id) }, diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc index fac51d0bf..fb761919b 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc @@ -35136,14 +35136,40 @@ const char* HP_itemdb_typename(int type) { } return retVal___; } -void HP_itemdb_jobid2mapid(unsigned int *bclass, unsigned int jobmask) { +void HP_itemdb_jobmask2mapid(uint64 *bclass, int64 jobmask) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_jobmask2mapid_pre ) { + void (*preHookFunc) (uint64 *bclass, int64 *jobmask); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_jobmask2mapid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_jobmask2mapid_pre[hIndex].func; + preHookFunc(bclass, &jobmask); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.jobmask2mapid(bclass, jobmask); + } + if( HPMHooks.count.HP_itemdb_jobmask2mapid_post ) { + void (*postHookFunc) (uint64 *bclass, int64 *jobmask); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_jobmask2mapid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_jobmask2mapid_post[hIndex].func; + postHookFunc(bclass, &jobmask); + } + } + return; +} +void HP_itemdb_jobid2mapid(uint64 *bclass, int job_id, bool enable) { int hIndex = 0; if( HPMHooks.count.HP_itemdb_jobid2mapid_pre ) { - void (*preHookFunc) (unsigned int *bclass, unsigned int *jobmask); + void (*preHookFunc) (uint64 *bclass, int *job_id, bool *enable); *HPMforce_return = false; for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_jobid2mapid_pre; hIndex++ ) { preHookFunc = HPMHooks.list.HP_itemdb_jobid2mapid_pre[hIndex].func; - preHookFunc(bclass, &jobmask); + preHookFunc(bclass, &job_id, &enable); } if( *HPMforce_return ) { *HPMforce_return = false; @@ -35151,13 +35177,13 @@ void HP_itemdb_jobid2mapid(unsigned int *bclass, unsigned int jobmask) { } } { - HPMHooks.source.itemdb.jobid2mapid(bclass, jobmask); + HPMHooks.source.itemdb.jobid2mapid(bclass, job_id, enable); } if( HPMHooks.count.HP_itemdb_jobid2mapid_post ) { - void (*postHookFunc) (unsigned int *bclass, unsigned int *jobmask); + void (*postHookFunc) (uint64 *bclass, int *job_id, bool *enable); for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_jobid2mapid_post; hIndex++ ) { postHookFunc = HPMHooks.list.HP_itemdb_jobid2mapid_post[hIndex].func; - postHookFunc(bclass, &jobmask); + postHookFunc(bclass, &job_id, &enable); } } return; @@ -35780,6 +35806,32 @@ void HP_itemdb_readdb_additional_fields(int itemid, struct config_setting_t *it, } return; } +void HP_itemdb_readdb_job_sub(struct item_data *id, struct config_setting_t *t) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_readdb_job_sub_pre ) { + void (*preHookFunc) (struct item_data *id, struct config_setting_t *t); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_readdb_job_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_readdb_job_sub_pre[hIndex].func; + preHookFunc(id, t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.readdb_job_sub(id, t); + } + if( HPMHooks.count.HP_itemdb_readdb_job_sub_post ) { + void (*postHookFunc) (struct item_data *id, struct config_setting_t *t); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_readdb_job_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_readdb_job_sub_post[hIndex].func; + postHookFunc(id, t); + } + } + return; +} int HP_itemdb_readdb_libconfig_sub(struct config_setting_t *it, int n, const char *source) { int hIndex = 0; int retVal___ = 0; |