Skip to content

Commit

Permalink
Sync HPM Hook
Browse files Browse the repository at this point in the history
  • Loading branch information
guilherme-gm committed Aug 30, 2024
1 parent 216c752 commit 42796f9
Show file tree
Hide file tree
Showing 5 changed files with 107 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/common/HPMDataCheck.h
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,12 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
#else
#define COMMON_BASE62_H
#endif // COMMON_BASE62_H
#ifdef COMMON_CHARLOGINPACKETS_H
{ "PACKET_CHARLOGIN_ONLINE_ACCOUNTS", sizeof(struct PACKET_CHARLOGIN_ONLINE_ACCOUNTS), SERVER_TYPE_ALL },
{ "PACKET_CHARLOGIN_SET_ACCOUNT_ONLINE", sizeof(struct PACKET_CHARLOGIN_SET_ACCOUNT_ONLINE), SERVER_TYPE_ALL },
#else
#define COMMON_CHARLOGINPACKETS_H
#endif // COMMON_CHARLOGINPACKETS_H
#ifdef COMMON_CHARMAPPACKETS_H
{ "PACKET_CHARMAP_AGENCY_JOIN_PARTY", sizeof(struct PACKET_CHARMAP_AGENCY_JOIN_PARTY), SERVER_TYPE_ALL },
{ "PACKET_CHARMAP_GUILD_EMBLEM", sizeof(struct PACKET_CHARMAP_GUILD_EMBLEM), SERVER_TYPE_ALL },
Expand Down Expand Up @@ -322,6 +328,7 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
#endif // COMMON_HPMI_H
#ifdef COMMON_MAPCHARPACKETS_H
{ "PACKET_MAPCHAR_AGENCY_JOIN_PARTY_REQ", sizeof(struct PACKET_MAPCHAR_AGENCY_JOIN_PARTY_REQ), SERVER_TYPE_ALL },
{ "PACKET_MAPCHAR_AUTH_REQ", sizeof(struct PACKET_MAPCHAR_AUTH_REQ), SERVER_TYPE_ALL },
{ "PACKET_MAPCHAR_GUILD_EMBLEM", sizeof(struct PACKET_MAPCHAR_GUILD_EMBLEM), SERVER_TYPE_ALL },
#else
#define COMMON_MAPCHARPACKETS_H
Expand Down
6 changes: 6 additions & 0 deletions src/plugins/HPMHooking/HPMHooking.Defs.inc
Original file line number Diff line number Diff line change
Expand Up @@ -7546,6 +7546,12 @@ typedef bool (*HPMHOOK_pre_pc_auto_exp_insurance) (struct map_session_data **sd)
typedef bool (*HPMHOOK_post_pc_auto_exp_insurance) (bool retVal___, struct map_session_data *sd);
typedef void (*HPMHOOK_pre_pc_crimson_marker_clear) (struct map_session_data **sd);
typedef void (*HPMHOOK_post_pc_crimson_marker_clear) (struct map_session_data *sd);
typedef bool (*HPMHOOK_pre_pc_is_own_skill) (struct map_session_data **sd, uint16 *skill_id);
typedef bool (*HPMHOOK_post_pc_is_own_skill) (bool retVal___, struct map_session_data *sd, uint16 skill_id);
typedef void (*HPMHOOK_pre_pc_clear_existing_cloneskill) (struct map_session_data **sd, bool *clear_vars);
typedef void (*HPMHOOK_post_pc_clear_existing_cloneskill) (struct map_session_data *sd, bool clear_vars);
typedef void (*HPMHOOK_pre_pc_clear_existing_reproduceskill) (struct map_session_data **sd, bool *clear_vars);
typedef void (*HPMHOOK_post_pc_clear_existing_reproduceskill) (struct map_session_data *sd, bool clear_vars);
#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);
Expand Down
12 changes: 12 additions & 0 deletions src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
Original file line number Diff line number Diff line change
Expand Up @@ -5524,6 +5524,12 @@ struct {
struct HPMHookPoint *HP_pc_auto_exp_insurance_post;
struct HPMHookPoint *HP_pc_crimson_marker_clear_pre;
struct HPMHookPoint *HP_pc_crimson_marker_clear_post;
struct HPMHookPoint *HP_pc_is_own_skill_pre;
struct HPMHookPoint *HP_pc_is_own_skill_post;
struct HPMHookPoint *HP_pc_clear_existing_cloneskill_pre;
struct HPMHookPoint *HP_pc_clear_existing_cloneskill_post;
struct HPMHookPoint *HP_pc_clear_existing_reproduceskill_pre;
struct HPMHookPoint *HP_pc_clear_existing_reproduceskill_post;
struct HPMHookPoint *HP_libpcre_compile_pre;
struct HPMHookPoint *HP_libpcre_compile_post;
struct HPMHookPoint *HP_libpcre_study_pre;
Expand Down Expand Up @@ -13109,6 +13115,12 @@ struct {
int HP_pc_auto_exp_insurance_post;
int HP_pc_crimson_marker_clear_pre;
int HP_pc_crimson_marker_clear_post;
int HP_pc_is_own_skill_pre;
int HP_pc_is_own_skill_post;
int HP_pc_clear_existing_cloneskill_pre;
int HP_pc_clear_existing_cloneskill_post;
int HP_pc_clear_existing_reproduceskill_pre;
int HP_pc_clear_existing_reproduceskill_post;
int HP_libpcre_compile_pre;
int HP_libpcre_compile_post;
int HP_libpcre_study_pre;
Expand Down
3 changes: 3 additions & 0 deletions src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
Original file line number Diff line number Diff line change
Expand Up @@ -2827,6 +2827,9 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(pc->expandInventory, HP_pc_expandInventory) },
{ HP_POP(pc->auto_exp_insurance, HP_pc_auto_exp_insurance) },
{ HP_POP(pc->crimson_marker_clear, HP_pc_crimson_marker_clear) },
{ HP_POP(pc->is_own_skill, HP_pc_is_own_skill) },
{ HP_POP(pc->clear_existing_cloneskill, HP_pc_clear_existing_cloneskill) },
{ HP_POP(pc->clear_existing_reproduceskill, HP_pc_clear_existing_reproduceskill) },
/* pcre_interface */
{ HP_POP(libpcre->compile, HP_libpcre_compile) },
{ HP_POP(libpcre->study, HP_libpcre_study) },
Expand Down
79 changes: 79 additions & 0 deletions src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
Original file line number Diff line number Diff line change
Expand Up @@ -73497,6 +73497,85 @@ void HP_pc_crimson_marker_clear(struct map_session_data *sd) {
}
return;
}
bool HP_pc_is_own_skill(struct map_session_data *sd, uint16 skill_id) {
int hIndex = 0;
bool retVal___ = false;
if (HPMHooks.count.HP_pc_is_own_skill_pre > 0) {
bool (*preHookFunc) (struct map_session_data **sd, uint16 *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_is_own_skill_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_pc_is_own_skill_pre[hIndex].func;
retVal___ = preHookFunc(&sd, &skill_id);
}
if (*HPMforce_return) {
*HPMforce_return = false;
return retVal___;
}
}
{
retVal___ = HPMHooks.source.pc.is_own_skill(sd, skill_id);
}
if (HPMHooks.count.HP_pc_is_own_skill_post > 0) {
bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, uint16 skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_is_own_skill_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_pc_is_own_skill_post[hIndex].func;
retVal___ = postHookFunc(retVal___, sd, skill_id);
}
}
return retVal___;
}
void HP_pc_clear_existing_cloneskill(struct map_session_data *sd, bool clear_vars) {
int hIndex = 0;
if (HPMHooks.count.HP_pc_clear_existing_cloneskill_pre > 0) {
void (*preHookFunc) (struct map_session_data **sd, bool *clear_vars);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_clear_existing_cloneskill_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_pc_clear_existing_cloneskill_pre[hIndex].func;
preHookFunc(&sd, &clear_vars);
}
if (*HPMforce_return) {
*HPMforce_return = false;
return;
}
}
{
HPMHooks.source.pc.clear_existing_cloneskill(sd, clear_vars);
}
if (HPMHooks.count.HP_pc_clear_existing_cloneskill_post > 0) {
void (*postHookFunc) (struct map_session_data *sd, bool clear_vars);
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_clear_existing_cloneskill_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_pc_clear_existing_cloneskill_post[hIndex].func;
postHookFunc(sd, clear_vars);
}
}
return;
}
void HP_pc_clear_existing_reproduceskill(struct map_session_data *sd, bool clear_vars) {
int hIndex = 0;
if (HPMHooks.count.HP_pc_clear_existing_reproduceskill_pre > 0) {
void (*preHookFunc) (struct map_session_data **sd, bool *clear_vars);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_clear_existing_reproduceskill_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_pc_clear_existing_reproduceskill_pre[hIndex].func;
preHookFunc(&sd, &clear_vars);
}
if (*HPMforce_return) {
*HPMforce_return = false;
return;
}
}
{
HPMHooks.source.pc.clear_existing_reproduceskill(sd, clear_vars);
}
if (HPMHooks.count.HP_pc_clear_existing_reproduceskill_post > 0) {
void (*postHookFunc) (struct map_session_data *sd, bool clear_vars);
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_clear_existing_reproduceskill_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_pc_clear_existing_reproduceskill_post[hIndex].func;
postHookFunc(sd, clear_vars);
}
}
return;
}
/* pcre_interface */
pcre* HP_libpcre_compile(const char *pattern, int options, const char **errptr, int *erroffset, const unsigned char *tableptr) {
int hIndex = 0;
Expand Down

0 comments on commit 42796f9

Please sign in to comment.